fix(models): resolve some standing issues with model updating by making use of beforeValidation()

Somehow I completely missed beforeValidation() when I was implementing the models the first time, and struggling with how to make it ignore the `createdAt` and `updatedAt` properties, as well as the standing issue of the `author` property for story models sometimes coming in as an object, and sometimes as an ID. This should resolve all of those issues.
feat(site settings): making changes to the site settings now refreshes them immediately on the backend, rather than requiring a server restart

Wasn't sure whether to classify this as a bug fix or a feature... but let's be optimistic and call it a feature. Before this change, you could change the site settings from the admin dashboard in the CMS, but the Sails server would need to be restarted for the changes to show up. Now, the settings are refreshed on save, so they will be reflected on the site immediately.
feat(Google Analytics): add the ability to turn on Google Analytics tracking to the site settings and admin dashboard

This commit introduces two new fields to the site_settings table, one to control whether Google Analytics tracking should be turned on or off, and the other to store the Google Analytics ID (which will only be used if the former is set to true). All pages will be tracked except for the CMS side, though as of right now there is not yet any special code to account for this being mostly a Single Page App (SPA), so GA may or may not pick up everything. I plan on monitoring the GA tracking on my own test site for a bit before I spend time optimizing the client-side JS for Google Analytics, if at all.
feat(Twitter cards): added a basic implementation of Twitter cards

Again, it's configurable via the site_settings table and the admin dashboard, and off by default. I also had to add a site description field, because a description is required for all cards. The implementation doesn't yet support customized cards for story pages and author profiles because I'm not sure whether that can be done on the frontend, or whether it has to be done on the backend.
feat(Twitter cards): add Twitter cards to individual stories and author profiles

This expands the Twitter card functionality introduced in the previous commit to support customized cards for individual stories and author profiles. This implementation is done entirely on the frontend, which I'm not 100% sure will work correctly, so I'm committing it to the development branch for now so I can test it against Twitter's validator using my own Heroku test site.