Update threads test for coverage/BDD/promises, bug fixes

Boards:
Fixed a bug in boards where purged board were not being moved to the
correct (deleted) DB in the purge method.

Optimized boardByOldId by redirecting flow of control to boards.find
once the new ID is retrieve with the old id.

Changed the boards test to use smf ids as string since that is how they
will come from the mysql db.

Changed the import_delete test to use purge instead of delete since
delete doesn't really affect the legacy key index. Also renamed the test
to #IMPORT_PURGE from #IMPORT_DELETE.

Threads:
Updated the threads test file for full method coverage as per the
index.js file. This includes full BDD testing being used as oppose to
TDD style testing, and fully utilizing promises instead of callbacks.

Implemented a smarter delete method in the db.js file for threads, this
new delete method moves the thread over to the deleted DB like the
original methods by also takes into the account the post_count and title
indexes. The new methods deletes those keys as well now.

Added a new method threadByOldId to gets thread objects from the DB
using the legacy id for a particular thread.

Optimized the byBoard db method to fully utilize promises. Originally,
it would retrieve each thread during the data event. Now it just saves
the value during the data event, and searches for all threads using a
map during the close/end event.

Plugged a leak where the index.js file was returning full thread db
model objects with prototype methods that should only be used in the db.
The .simple() method is called where needed to remove those methods.

Changed the parameters of the delete method to take in an thread's id
instead of a whole thread object.

Added a API interface for the threadByOldId method.

In the thread model.js file, added methods to retrieve the key and
legacy key from a static method where the parameter the id of a thread.
Also added the 'thread' prefix as a property of the thread model object.

All test pass.
Thread Model test file

Created a Thread model test file to fully test all the methods and
properties of a thread model. This test file implements full coverage,
BDD testing, and promises to test the thread model.

Also adjusted the thread's model.js file to decouple the created_at and
updated_at properties from the id property in the constructor. This
keeps the created from being overridden on create if a created_at time
already exists (in the case of imported threads).
Updated Charlatan seed

Updated the Charlatan seeder to work with the new interfaces among the
models.
Users moving bcrypt to db.insert

- test for creation fixed.
- split out model.
Create validation moved to model.
Initial re-write of posts test, bug fixes

Bug Fixes:
General housekeeping to keep all model code as similar as possible.
Decoupled created_at and update_at from id across all models.
Any calls to genId now pass in model.created_at.

Updated the Posts model.js file to handle more ways to generate keys.
Updated the Posts db.js and index.js files to handle retrieving posts by
legacy ids and re-wrote posts.remove to be more complete when removing a
post. (Unnecessary keys are removed)
Updated the Posts index.js file to keep it from leaking the Post model
out to API.

Posts test file now covers more of the post model and interface but a
few more methods need to be added as well as versioning of posts.
Database integration for import users.
Attempting to added board post_count and thread_count

* Partially working. Numbers are off and tests are failing wip.
Fixed handler and sort of readstream for boards.all
Completed add of board view total post/thread count

* Patched tests to create board/thread/first post for each thread
related test
* Rebased master changes on top of board metadata changes