Create Post model with TextPost and SongPost subclasses

@johnmanong what do you think of the `add_text_post` and `add_song_post` methods? I didn't know whether it should take an already created `Post` model or take individual attributes and create the model itself.

still work in progress, I'll add more tests soon.