Split out violations into separate table

  * Makes `Violation` inherit from `ActiveRecord::Base` and adds associated
    table
  * Adds `has_many :violations` association to `Build`
  * Updates creation of `violations` in `style_guide`'s
  * Adds `violation` factory

EDIT: this PR also renames the column `builds.violations` to `builds.violations_archive` allowing us to migrate the historical violations at a later date while making sure we're not still using this column in production.

https://trello.com/c/OLdRI0mO/336-split-out-violations-into-separate-table
I think the application level validations are not particularly helpful since there is no user looking at those errors (there is nothing anyone can do) so we could just allow the db to blow up at that point.