Schema option callback="(class::)method" added to xPDOObject::set()
Fix xPDO::getCount() to work with queries containing group by

Closes modxcms/revolution#513
Resolve xPDO::parseBindings() error from /e modifier fix

Fixes related errors including xPDO::removeObject() errors
Reject xPDOQuery conditions with SQL injection attempts

Encountering a semi-colon or UNION keyword outside of quoted strings in an xPDOQuery condition triggers an xPDOException and causes the entire xPDOQuery to be effectively invalidated by adding an always false condition to the WHERE clause: 2=1
Fix bug with conditions referencing keys outside xPDOQuery::$_class

This problem was introduced in the last commit and will address modxcms/revolution#11203
Remove deprecated xPDO::getMicroTime() method

Use microtime(true), available since PHP 5.0.0
Allow schema to define callbacks for field

This is automatically applied when the set() method is called on the field the callback is defined for

Merge remote-tracking branch 'origin/pr/12' into develop

* origin/pr/12:
  Schema option callback="(class::)method" added to xPDOObject::set()
Fix notice introduce in previous commit

Plus simplified the logic around "generated" primary key fields — no longer depends on index="pk" being set on the schema
Allow recursive xPDOObject::remove() beyond one level

Still prevents circular dependency problems without preventing proper recursive functionality by keeping track of specific objects being removed from each class by primary key, rather than just excluding all objects by alias or class of already processed relations

Addresses modxcms/xpdo#23 and should resolve modxcms/revolution#11453
Proposal for silent failure validation
Update taking care or comment + replicated to other vehicles types