I think you have to be prepared for a week or so of tantrums/whinging etc, but know that at the end of it life will be easier/more pleasant.
For now 'NO means NO' - even if you think 'Oh that was actually a bit tough/unnecessary' you have her whole life to do those other things. For instance, if you had said 'NO' re her drawing on her arm with the pen, then thought about the eye liner - for now, don't go back on it. It really isn't important - getting this sorted is.
It seems you can do it with DS because he doesn't challenge you the way DD does - it's time to shift the power in your relationship from her to YOU! and to do it before she gets any older!
WRT going to bed etc, stop telling her x, y or z will happen if she doesn't... 'she doesn't' needs to just stop being an option. If she's kicking up a fuss just tell her very firmly 'Get Into Bed NOW' if she doesn't just pick her up and put her in, keep returning her to bed - do not argue, cajole, negotiate, threaten or make eye contact, hug, sing ... anything. Silent return.
The zoo thing. If you want to change something like this then do it. Tell her before you go 'Today, we wont be going on the rides' so she knows in advance, then remind her when you get there. When she asks (as she will!!) say, 'No, DD, remember I told you this morning we aren't going on the rides today'. If she carries on 'NO, DD, I have said NO and that's the end of it'.... you may have to go to the 'Do you want to sit in the car on your own while DS & I finish looking at the animals?'.... even if it means doing this (and hiding near by) or going home early the first time, then so be it. She needs to learn that 'NO' is 'NO' not 'Whinge and you'll get it'.
Be strong!! It will be short term pain for long term gain!!