So today I went swimming with a friend from my ward who was involved on a swimming team during high school. He gave me some ideas for drills, and I hope I'm remembering them properly for posting here.
1) For Freestyle - swim on your side while flutter kicking a few kicks (with one arm out like you just put it forward and the other back), and then switch by doing a stroke. It's supposed to help you practice proper rotation/balance.
2) For Breaststroke - practice doing a stroke and gliding for a few seconds over and over again. This is supposed to help you train proper breathing/stroke movement. Today he told me that your hands aren't supposed to stop at your chest to help you breathe, you're supposed to breathe during the pull and not stop your arms until they're in front of you for the glide. It's supposed to give you more power. When I do this, I tire more easily, but I did realize I was going faster.
EDIT: A book on coaching swimming I found said that you shouldn't worry about your ankles/hips bending when you kick. So I don't know which is better, keeping straight or bending.