threads/db now does a lookup for first post data
extract thread creation to a function

this allows use of the same store method for create()
as well as delete()/undelete()
implement threads/db delete
update threads/db undelete
populate user field on threads/db find
on storeThread, pass id field in; don't store

this is done to differentiate updates from initial stores
update threads tests to use encodedBody -> body
update posts test encodedBody -> body
return value for postCount okay on delete/undelete

also title is okay on undelete