More remote vs in-memory operation refactoring

This commits further refacts the QueryCallable heirarchy to add a
decorator and a scalar value decorator.  It then uses this to make the
dataset-size operation work on both remote SPARQL services and in-memory
datasets.

It also tweaks the UpdateCallable implementation slightly to align with
the QueryCallable design patterns.