ISIS-760: refactor where Commands get persisted.

previously was in the closing of the PersistenceSession.  Are now within the IsisTransaction.commit() functionality.  This means that the usual error recovery processing can be used if (as there currently is with CommandService) there happens to be a defect in the implementation of one of these services.

In detail:
- PersistenceSession no longer calls closeServices() in its own close() method.  Instead, this functionality has been moved to IsisTransaction.
- IsisTransaction#commit now does the closeServices (to persist the command) instead.
- IsisTransaction now looks up the services from ServicesInjector, rather than have them handed to it by IsisTransactionManager.
- CommandServiceJdo#complete now has a guard to only attempt the complete (ie persist the CommandJdo object) if not previously done.
  This guard is required because - if there was an exception - then Wicket will restart the interaction on the same thread (but a new xactn) in order to render the error page and if the command is still present then (without the guard) Isis was trying to commit once more (ie an infinite loop)
ISIS-760: increased column length for target

from 255 to 2000 (to cope with the longer OIDs of view models).  Chose 2000 as a defacto length allowed for request URLs (since OIDs of view models appear in the URL of web browsers in both Wicket and Restful Objects viewers).