Attach the data store to the server (do not make it a global object)

This involves a refactor of the store and the cookbook objects so they are
attached to a server. This adds threadsafety and a much nicer testing harness.

This commit also reduced dependencies by removing puma and other non-sense.