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
In https://github.com/thoughtbot/hound/pull/525 I modified `BuildRunner#run` so that a build will be created if the custom config is invalid. Could we make `patch_position` and `line_number` not `null: false` to support non-line-specific violations?