Refactor twitter code

On the one hand, we need more tests around this

On the other hand, it wasn't tested in the first place

On a third hand, the code is a lot easier to read now.

I'm trying to isolate the twitter domain code from the rubyfriends or rails code so that we can generalize the project