* Support sub-key queries
Also requires a refactoring of types.
In head-only mode - the metadata in the ledger is just the value, and the value can be anything. So metadata() definition needs to reflect that.
There are then issues with appdefined functions for extracting metadata. In theory an appdefined function could extract some unsopprted type. So made explicit that the appdefined function must extract std_metadata() as metadata - otherwise functionality will not work.
This means that if it is an object key, that is not a ?HEAD key, then the Metadata must be a tuple (of either Riak or Standard type).
* Fix coverage issues