Some initial tests

What this does
---
 - This puts in some initial tests. 
 - Cleans up the routes

What still needs to be done
---
 - More comprehensive Controller tests
 - Model tests
 - Clean up math logic (put into a "model")

cc @nathantempelman 
I like that email is optional, because then it's their own fault. Reddit does it that way. email is optional, username is required, that's it. And I feel like this site would be similar in a lot of respects, people might not feel comfortable giving their email out.