Thread update/delete/purge and bug fixes

Added a soft delete, and update method while converting the old delete
into a purge method. The soft delete only updates the deleted property
of the thread to true and also updates the updated_at time. The update
method currently only allows changing the deleted property while always
updated the updated_at property. The purge method removes all traces of
the thread data along with all necessary keys. The threads index.js file
was also updated to match the new methods. Additionaly tests were added
to the threads.js test file to ensure these methods are working
properly.

Bug Fixes:
* Removed a errant catch in threads.find. This catch method was actually
hiding an error with how posts were created an attached to the thread.
It also hid that error from the test. This also prompted more robust
testing code that ensure that if a error is expect, the type of the
error is also checked and that the catch in the test is called.

* Removed an errant catch in board. This did not hide any issues but was
changed so that any errors are propagated up to the interface instead of
staying within core.

* Fixed an issue with the order of call in posts.create. It was
originally calling the threads.incPostCount and threads.find in such a
way that certain keys were being asked for before they were created.

* Post/Threads purge method was not removing the legacy key index. It
does so now.

* Ensured that all keys generated during creation across all models are
* properly disposed of during the purge method. The only exception is in
* the posts.purge method where the handling of the thread title and the
* threadFirstPostId indexes are still being deliberated on.

Testing Fixes:
* Fixed a mispelling in boards.js that was actually leading to an error
but that error was being eaten by the catch at the end of the promises.
The mispelling was fixed and the testing was updating in two ways. All
catch routes flip a flag to indicate that the catch was called, and a
final then was added that ensure that the flag is true. Also, within the
catch itself, the error's type is also checked to ensure any other
random error causes the test to fail. This same robust code was added to
threads and posts testing.

* Fixed an issue where create was being used in an import test. This
error was also hidden due to the lack of robust testing as mentioned
previously.