kontrol: independent storage support, add PostgreSQL as additional storage.

This PR aims to decouple etcd dependency from Kontrol so that we can use any storage backend for kites. Removing the dependency means also some tradeoffs such as removing Watch functionality (will be implemented later again). This PR has the following changes:

* Better Storage support by providing a generic storage interface.
* A new `SetStorage()` method that needs to be set before we call the `Run()` method.
* Seperate `Set()` method into `Update()` and `Add()` methods for better granular control of the storage interface.
* Remove watcher functionality to make the storage interface simpler. Also the watcher functionality needed already some refactor. The watcher methods will be supported via a new `Watcher` interface which can be implemented later again with Etcd's own watch functionality or Postgres `NOTIFY` support.
* Add additional storage support via PostgreSQL. This is a huge change. The implementation details are:
	* New constructor via the `NewPostgres()` function
	* Data is stored in a table called `kite`, with the column names of `kite`, `url`, `id`, `created_at` and `updated_at`
		* The `url` column is used to store the URL which the kite was registered
		* The `id` column is added which acts as `PRIMARY KEY` so every unique kite can be added just once. This is import so we don't add the same kite over and over. It's the same the kites own `ID` which is in form of UUID V4. We don't have default's for this field because each kite does already have a unique ID.
		* Both `created_at` and `updated_at` are using UTC timestamps
	* Version constrains (such as `~> 1.1`) are fully supported.
	* Rows are purged based on `updated_at` field if they are older than 10 second (HeartbeatInterval). This is acting like a TTL so we can be sure that the table is always clean.
	* Passes all tests. Also we have now two concurrent builds, one for `etcd` and one for `postgres`. It's defined with the environment variable `KONTROL_STORAGE`. Both travis and makefile has support for it. By default it's `etcd` for Makefile.

 
 

It is nice convention to have all tables in their regarding schema

1) create kite schema
2) add it to search path
```
CREATE SCHEMA kite;
GRANT usage ON SCHEMA kite to <database_user_name>;
SELECT set_config('search_path', current_setting('search_path') || ',kite', false);
```