MySQL support

#### MySQL support :tada: :dolphin: 
![photo of a dolphin](http://imms.org/images/dolphin_presentation/dolphin1.jpg)

* Tests run and pass on both PostgreSQL (:elephant:) and MySQL (:dolphin:), and gemfiles for Rails 4.0 and 4.1.

* :dolphin: Full Text Search via `MATCH AGAINST` and a `:fulltext` index.

* Migrations compatible with both :elephant: and :dolphin::
  * :dolphin:-only `limit: 191` on indexed string fields (slug, title) due to [a limitation of :dolphin:](http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-upgrading.html) :droplet:
  > InnoDB has a maximum index length of 767 bytes, so for utf8 or utf8mb4
  > columns, you can index a maximum of 255 or 191 characters,
  > respectively.

    `utf8mb4` is required for emoji support on :dolphin:.

* Both of the schemas get dumped, `db:schema:load` loads the active one as per `ENV['DB']`.

* Remove Gemfile.lock from version control, upgrade to RSpec 3, specify versions of bbcoder, rspec-rails, capybara, and shoulda-matchers in gemspec.

* Fix compatibility issues in `messageboard_destroyer.rb`.

* Fix :dolphin: latest_post/user timestamp ordering issue in `messageboard_decorator.rb`.

* Fix compatibility issues in `Topic`. Extract shared code from `Topic` and `PrivateTopic` into the `TopicCommon` concern.

---

Full Text Search requires :dolphin: >= 5.6.4. The build is broken for :dolphin: on Travis because it runs an earlier version. Tests pass for me with :dolphin: 5.6.19.
From a readability standpoint I find the original format of these to be easier to interpret. Can you talk me through the reasoning behind changing it to asserting the returned size explicitly?