[WIP] Start splitting apart thredded_topics

* Create a thredded_private_topics table
* Change Thredded::PrivateTopic to subclass from AR::Base instead
* Start filling in the blanks on the dependencies - posts, decorators, etc
* Add associations, copy over code from Thredded::Topic to
  Thredded::PrivateTopic
[JRO] Fix more specs
[JRO] Create new table and copy data over
[JRO] Tests passing

TODO: Use polymorphic association instead of having two id's in posts
[JRO] Use polymorphic association w/topics in posts

Up until now we were using STI (single table inheritance) to reference topics and private topics. This commit moves us closer to a better designed API with topics and private_topics being their own, discrete models, and posts referencing either with a polymorphic reference called “postable”.

* Migrate data from one table, to two tables.
* Create a private_topic_mailer and views.
* Update rake and rspec-core
[JRO] Move posts#index to topics#show

TODO: Move similar to private_topics
[JRO] Migrate post data and check functionality

Lots of places where topic was specifically referenced needed to be
changed to either postable, or using the polymorphic helpers.

Add new exception that can be thrown - PrivateTopicNotFound
Fix this logic
[JRO] Search back to working
[JRO] Failing private topic integration specs
[JRO] Removing specs for deprecated feature
[JRO] Big refactor of decorator code.

Blew up, and out, a large hunk of the decorator code so that
topics and private topics were sufficiently isolated with regard to the decorator responsibilities. This turned into a domino effect where changes 

* Extract common decorator code into a base topic
  decorator and compose the vanilla and private topic
  decorators using that base decorator
* More proper use of the SimpleDelegator class
* Pull up the Chronic timezone change to the spec
  helper instead of before every test using Chronic.
[JRO] Use PG instead of SQLite

* Use database_cleaner
* Tune the database_cleaner stuff in spec_helper
[JRO] Mark and reset a user's read status

For private messages a user needs to know whether there's a new post in
there or not. This commit does that.

Also:

* Add command/service objects to do some work
* Decorators should behave like private topic and allow rails to do its
  work via content_tag
* Get some test coverage around this new feature
[JRO] Remove griddler.

Need to extract this functionality to its own gem

* Remove the reply-to text from emails
[JRO] Set old private topics to read
[JRO] Add caching around num of unread private topics

* Remove the check for whether a user can view their list of private
  topics in favor of just letting them go through to there and see a
  message saying nothing is there and would they like to create one
* Remove categories and sticky/locked from private topics since they're
  not used.
* Add a notifier for how many private topics there are.
[JRO] Bubble up NullUser to the controller layer

Previously the NullUser was being used in the CanCan ability definition
but not up in the controller or view layer. Why? Meh, dunno. The
`unread_private_topics_count` method in the user object was bombing out
for visitors so the null object was the next best place to put it, and
raise the object's presence up to the user controller.

This caused some issues here and there that are fixed in the rest of
this commit. Primarily where there are AR queries calling on the
user'ish object as part of the query - `where(user: current_user)`
changing to `where(user_id: current_user.id)` ... or things of that
nature ... fixed this.
[JRO] Add `secret_key_base` to quell the warning

Rails 4 noise