A few comments:
5...e6 : I think BxB or even Bg6 is more playable here. Why succumb to doubled pawns for nothing?
8...Bb4. Here's a golden rule about threat making:
if I make a threat and my opponent can defend against this threat by
i) Ignoring it and doing something worse to me.
ii) Forcing me to move my threatening piece again immediately...and possibly improving his position with his defensive move.
iii) Move the threatened target piece to an even better square, thereby being
much happier with his position.
then your threat useless at best and a MISTAKE at worst. In this case, ii) applies and sure enough, he played c3. I'm sure he even liked his pawn better on c3 which can be counted as an improvement.
Remember => When strong players make threats ... they see a benefit to it EVEN with best defense from their opponent...this is one of the great doorways into serious chess.
15.... O-O-O : Why castle long instead of short? The general idea about castling opposite sides is that you intend to start a furious race to see who attacks each other's king first. Given that he has far more space on the Queen side, you are essentially "castling towards trouble as opposed to away from it"
More importantly ... let's look at the threat of his f3 break move. You can't ignore any tactical (forcing move) possibilities on the board AT ANY TIME in a chess game. If he takes on e4, his central + q-side pawns start rolling. but if YOU take on f3, doesn't that make e3 weak or atleast have his kingside opened up? Pay attention to the pawn structures after any potential pawn trades!
16....h5 : too little, too late. You are dropping a pawn for an attack that will take time to mobilize. His attacking ideas have already begun!
17...Ng4 : As you said, don't play for cheapos. You have to assume nothing but best moves by your opponent at all times. Also, you have to always calculate forcing moves in response to your move BEFORE you play it. After giving up a pawn, you can be sure your opponent would love to trade queens and take the sting out of whatever attack/plan you have for him.
19...Nxe3 : To borrow Josh Waitzkin's analogy ... you drove your car to the teetering edge of the cliff and it's barely balancing mid-way. Don't play a "desperate" second mistake to send it hurtling down!
21...Rd7 : Never trade pieces when you are down. At this point, I have to say that it is a little weird for you to talk about color weaknesses,quote nimzowich and appear erudite in your reading of advanced chess strategy when you make mistakes that are this fundamental ... this is a sign of a shaky chess foundation that you need to REPAIR FIRST, before you keep reading advanced material. This is no different than a 1st grader quoting ideas from his big brother's advanced algebra textbook but still forgetting to carry the one when he does basic addition. Please take this as constructive criticism ... I've been down this same road before coaches/stronger players set me straight and had me put away + lock up all my advanced chess books until I was ready for them :)
The rest of the game had you hoping for a mistake and playing for traps ... which is actually okay if you are losing/playing from behind. His technique was quite sloppy and I'm glad you fought till the bitter end.
Overall : it was a nice game you played ... treat critical positions (with forcing moves and analysis) with a little bit more care and work on getting the basic ideas (knowing when to trade, looking at forcing moves, making "useful" threats etc.) right and you'll be way more stronger than you are now.
http://www.youtube.com/watch?v=se9wCX_1Ivs