Added authentication, admin actions, voting funcitonality and sped up post index view

You improved the performance of the index action by doing the sort on the SQL level and returning a relation which can be lazy evaluated in the view, therefore avoidable if there is a cached view response.

Both actions `index` and `my_posts` pretty much do the same query, ideally you would've refactored the query into a scope or method inside the model.