Clean up generics a bit
ISPN-4951 Entry Retriever iterator should rethrow caused exception

* Pass along any local throwable to iterator
* If remote node receives throwable propagate that as a response
ISPN-4950 Add ability to merge defaults into Metadata passed as param

* This is required in order to be able to apply default lifespan and
max idle settings configured globally for the cache.
* To do so, a new method has been added to builder that allows a
Metadata object to be merged with the builder instance.
* By making the default metadata builder implementation use objects
for primitives, it can easily distinguish between those settings
that have been set by the user versus the builder defaults.