First of all I would say that all of those behaviours sound pretty darn normal for the age. Tantrums, outright refusing to do what you say, increased pickiness with eating, refusing to use the potty, etc. The language thing is also v. normal.
My best guess is that most of these behaviours are tied to control. He is trying to assert control where he can. He is coming into his stage of independence. In your post you also mention that you have a baby, and something I know from experience is that a new sibling can make these behaviours much more prevalent and intense.
Put aside as much time as you can each day to give him your undivided attention. It can be hard when you also have a baby to attend to, but it can make a huge difference. He is still your "baby" too.
As for eating pickiness I suggest that you do not get into a power struggle over this one. Set out "snack plates" with an assortment of healthy stuff (cheese, apple slices, carrot sticks, nuts, grapes, crackers, sandwich pieces, etc) and let him graze. When my kids were toddlers I noticed that sometimes they'd be too busy playing and they wouldn't choose to stop to eat. Something I did was give food "on the go" (sandwich in the stroller on the way to the park, etc). If he's mostly interested in drinking then try giving him smoothies. You can hide tons of good stuff in smoothies.
Re. continuing to do stuff that hurts you and laughing. At this age he is not really able to be empathetic (put himself in your shoes). He does not really "get" that what he's doing hurts you (despite you telling him). Sometimes kids laugh when we get angry at them to try to diffuse the situation. Don't focus on the fact that he's laughing (which I know can really be a button pusher). If he hurts you (or is about to hurt you) you need to remove yourself from his reach, or remove him from you. Saying "no" won't make him stop. In our house we are not allowed to hurt each other. Period. There are a couple of things you could try. If he is hitting out in the middle of a tantrum you could try hugging him close to you. Some kids react well to this and it helps them work through and let go of their big feelings. Some kids do not want to be touched, but do better to be in a quiet place (by themselves, or with a parent) until they calm down. Remember it is all about big feelings: anger, fear, frustration, and him not knowing yet how to work through those feelings. Help give him the tools. Name his emotions for him (empathize): "You seem really frustrated! Your lego building got broken."
Ok, I've gotta run and deal with my kiddo... hope that helps. I'll come back later with more thoughts.
ETA I think it's right now it's going to be a fine balance between giving him MORE control where you can (more choices), and giving him a little extra "babying".
I also wanted to say - It will get better! I promise! This is a tough age and stage.