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

A `create` (or `save`) can also fail if any `before_*` callback returns false. By only checking `.errors.any?`, down the road it could lead to reporting a vote as successfully even if it was not. A bug that would be really hard to identify.