(PDB-897) Create new message listener TK service

This commit refactors our current command code to allow message
listeners to be register via TK service on startup. The new message
listener service handles spawning threads to listen to the queue and the
plumbing of pulling a message off the queue, putting it back on in the
case of failure etc. The new message listener service consumes the MQ
config from the PuppetDBServer service. The functionality of the server
service is the same, but previously didn't expose a protocol. It now
needs to expose one so that the message listener service can be sure it
has started before it starts. The code handling the commands registers
itself with the new message listener service but is unchanged beyond
that.
(maint) Allow factset hashes to be nil in db

This is necessary for factsets to function after the PDB-898 migration,
since existing factsets are not being hashed.
Merge pull request #1140 from wkalt/maint/make-factset-schema-nullable

(maint) Allow factset hashes to be null in db
Merge pull request #1138 from senior/ticket/master/pdb-897-tk-message-listener2

(PDB-897) Create new message listener TK service
(PDB-911) change to TK WebroutingService

This commit switches us from the TK WebserverService to the TK
WebroutingService. This will allow us to attach commercial-only routes by
modifying the config file before consumption by TK.