Implemented deleteSObject and createSObject

- Renamed QueryResultRecord to SObject_x (the true name for the base
type used in the WSDL), also implemented some base functionality to
support serialisation see below. Left members in here that are only
truly common (system fields).
- Discovered that unlike serialising SObject's, Apex class
serialisation emits nulls in the JSON, which sends the Tooling API into
a spin. Note that XML serialisation omitted sending elements with null
values (hence the fieldsToNull lists in SObject schema type).
- Had to implement a custom serialisation system (deserialisation is
fine). Will need implementing on all types extending SObject_x.
- Caught between rock and hard place here, SOAP doesn't like
polymoprhic but doesn't sent nulls, and JSON handles polymophric but
sends nulls (by default). On balance still happy with JSON as we have
more control to get ourselves out of pickles like this null issue.