iterator implementation, uses views

The view and design document are configured in CouchbaseConfiguration.
Added a method to get an observable of all elements in cache (from said
view).
Fixed licence while I'm still the only contributor.

Header was for MIT Licence while intended to be Apache2
(see LICENCE file).
pass cluster environment through CachingProvider
refactor getAllDocuments, removeAll and clear

in order not to automatically load all entries in memory, the method
getAllDocuments has been transformed to getAllKeys, returning an async
Observable of all the keys in the cache.

the removeAll and clear methods have been reworked to use this in order
to remove documents in a streaming fashion, and also to be able to
notify listeners of removal in the future. Flush operation is doing more
under the covers and thus is not adapted to this feature.
UnsupportedOperationException on unimplemented methods
internalGet and internalPut
added some lock/expiry todos
starting implementation of atomic methods

these are the methods described as atomic, CAS, without any locking yet,
nor expiry/statistics management.