Fix log trace, get rid of timing trace
Major cleanup and fixes for ClientDS

 * toString() functions for ClientDsRequest and ClientDsResultSet for easier logging
 * fetchRelations is now an option per request, not per item-in-request
 * General cleanup
 * It generally seems to be working (!!! imagine that)
Try to catch errors better.

Still not great, but mildly better.  Not sure what the best way to do this will be...
If we can wrap API calls to know which controller they belong to, and which then fetch
info from the controller?  Who knows.

This is better than nothing though...
Minor fixes for object

 - toString() method on client, same as server
 - _clientDs initialised during save() delete() or refresh() if it wasn't already
 - fix for serializing null dates (ie if it is a new unsaved object, it doesn't have created or modified set)
Ability to cache requests.  Currently has no security.  (I'm a horrible person)

In my use case, I'm pulling about 6000 objects.  The SQL queries on dev mode take
about 2 secs (could possibly optimise), but serializing the damned objects for Haxe remoting
takes about 12 secs.  Much faster on my real server, but in development it was frustrating.

Smaller requests don't need this.

I'll try and think of a better implementation that takes security into account later...
Validate on client before save

And update some comments
Indentation changes