I read your post last night and felt instant sympathy, I have a threenager too!
DS is 3.6 and dd 7m.
We have good days and bad. Hunger, tiredness and boredom make it 100x worse, so I try to fix those before they happen. It's been much worse since preschool started, where he is absolutely angelic. The teacher says it's common for them to let go at home after having to be so controlled all day.
I'll suggest a few things that work for us, but tbh I think there is an element of surviving some days without murdering the little beasties 
Physical exercise every day (I think of DS being a bit like a puppy in that regard!).
Praise good behaviour, as you do. Consequences for bad. Sometimes this involves making up a consequence - could you help mummy tidy up please so we have time to open a pack of stickers for your album? No? Oh well, we'll put the stickers away for another day. Could you come and brush your teeth quickly please? No? Oh well, that's a shame I was looking forward to a nice long story tonight but now there won't be time.
Making him laugh works. Mum I want that dinosaur/game...(in shop). Oh it's lovely isn't it, I wish I had a giant dinosaur, or I wish I had a giant chocolate dinosaur. Usually met with I want that one. Get increasingly ridiculous, I wish I had a moon to hang in my bedroom and shine all night... By the time you get to the 3rd or so he'll be joining in and it gets v funny.
Getting him to make the choice. You need to get dressed, would you like to put your trousers or vest on first/wear the red or green top... Or, hmmm this table is very full of dirty dishes, how can we fix this, could my superhero boy suggest what we can do? Oh, could you show me?
Always being polite yourself, to your DH and the DC. They will mirror you.
With the hitting, we've been relatively lucky but when it happens I shower dd with cuddles and over the top fuss and completely ignore DS. Then I say to DS, we must use gentle hands, let me show you, can you try, that's lovely, that makes mummy and dd very happy to see your gentle hands.
When possible I ignore tantrums, and never give in to them. Even in the middle of tesco, I just loudly say, I can wait all day, let me know when you're ready to carry on with the shopping (so the other shoppers don't look quite so horrified!) and then I wait.
When I've had enough and nothing else works I use 1,2,3. Consequence at the end if possible, but if it's descended into chaos I'll pick him up and put him upstairs behind the stair gate, as much for me to cool off as him. He hates this and is pleading a tearful apology within a minute.
When I'm time pressured (getting coats on for school) I'll use a sand timer and say, can you get ready before the sand runs out? Make a competitive game out of it.
Books I've found useful are:
[[
www.amazon.co.uk/How-Talk-Kids-Will-Listen/dp/1848123094/ref=sr_1_1?ie=UTF8&qid=1386577619&sr=8-1&keywords=how+to+talk+so+kids+will+listen+and+listen+so+kids+will+talk How to talk]]
No cry discipline solution
Peaceful parent, happy kids
And for the pooing issue:
Little mole
Everybody poos
Plus a stash of chocolate buttons, one for a wee, two for a poo, as an immediate reward.
Having said all that, I have horrid shouty mum days sometimes, especially when I'm tired, but I make sure I say sorry, and I make sure we always go to sleep happy.
Don't know if that epic reply will be of any use, but you have my sympathy!