Improve client error generation

DRY up error generation methods.

Include API-specific error fields in the user
info, since the localized description value for is
more fit for log output.
Shorten client base task methods with startTask helper
Improve debugDescription Foundation extension method
Log requests when starting client tasks
Rewrite pagination support for client fetch requests

The pointer approach has never worked. Instead of
spending more effort on a complicated solution,
directly solve it by with an updated block
signature that adds an extra pagination info
parameter. This meant creating another base fetch
task method, but obviates any 'generic' block type
descriptions.

Also fix the related test assertion macro that
failed to do its job.
Merge pull request #9 from 3dna/peng/cleanup-2

Cleanup #2

Add minor refinements to the client to make simpler (pagination changes) and more developer friendly (logging and error passing). Only includes a slight change in public interface.