Add some caching

1) Add a new base cache object which will manage the mongo db object
initialization
2) Each distinct cache (petitions, signatures, etc.) has an instance of
that cache object and uses it to open connections to the database when
necessary
3) Make event emitters use cache instead of api (most caches just call
the api, except for getPetition)
4) Turned down socket logging.