porting over couch changes fixes from tapicero
refactor: using instances rather than classes

also moved db initialization into couch changes.

This helps simplify the code. However it takes away our ability to print to the log on SIGINT because the logger is not globally accessible anymore.
make logger globally accessible so we can log SIGINT
make couch changes and config more generic
move config into couchrest/changes; couch_rest -> couchrest
refactor: make config singleton again

This allows us to have a very generic config and take db_name as a parameter for initializing the CouchRest::Changes instance

Also changed the way we deal with unkown config options to not err out but print warning instead.
allow configuring db prefix and suffix
allow for options in the config file
extracting CouchRest::Changes into its own gem
Use CouchRest::Changes 0.2.0 - support flags
there might be no ARGV at all.

Check before working with ARGV.first
Version 0.0.1: Upload key if it's present in the changed identity

This is just a very simple upload function so far.
We do not check if the key has been uploaded before or if it has been
changed at all.