Add authentication, styling, and do a little refactoring

Also clean up the controller to use strong parameters. We don't ever have to split out date time parameters, as rails will automatically try to apply the composite parameters. Check out [ActiveRecord::Aggregators::ClassMethods](http://api.rubyonrails.org/classes/ActiveRecord/Aggregations/ClassMethods.html) for some info on how rails does this.

I also added pry-rails so that running `rails c` will actually open in pry.

- Use SimpleForm for resource forms.
- Use Carrierwave for image uploading.
- Cleaned up controllers and use strong parameters.
- Add validations to prevent blank events and roles.
- Add standard layout, navigation, messaging, and styling.
- Add BetterErrors for in-browser debugging.
- Add devise and require authentication to get at stuff.

- Allow roles to have the same name that belong to different events.
Typically I go with canonical versions from RubyGems, since those are supposed to be more stable. However, some gem maintainers are really bad about releasing official gem versions for one reason or another (I blame version vanity).

Carrierwave is one of those. Mainly, they haven't released an official version since RSpec 3 came out, and all of their built-in matchers on the official release clutter the logs with deprecation warnings. Specifying the Github repo instead of a version number just says "I want the bleeding edge, and I accept the risks associated with that."  It also lets you specify your own fork/branch of a repository if you needed to modify it in some way that hasn't been accepted back into the master repo yet.

But generally, you should either specify a version or no version, and only use repos when needed.