ISIS-550: starting on PostsAddedToCollectionEvent

This is Oscar's patch attached to ISIS-550 ticket on 6-may-2014.
ISIS-550: renaming classes

to be consistent with current convention..
* AddToCollectionEvent -> CollectionAddToEvent
* RemoveFromCollectionEvent -> CollectionRemoveFromEvent
etc.

Also commented out some unit test that was incomplete.

Also:
ISIS-550: PostsCollectionAddToEvent first-cut impl

... pretty much there.
ISIS-550 and ISIS-776: merging
ISIS-550: PostsCollectionRemovedFromEvent implemented. Subscription Tests needed
ISIS-550: fixing unit test.
ISIS-550: Oscar's work to date on ActionInvokedEvent

- Refactored ActionInvocationFacetViaMethod (distinguish meaning of null, introduced internalInvoke)
- New PostsActionInvokedEvent annotation class
- New facet interface, abstract class, implementation (latter subclassing ActionInvocationFacetViaMethod).
ISIS-550: minor refactoring of InvocationResult

- make nested static class
- use factory methods to avoid boolean in method signature.
ISIS-550: removed WrapperPolicy, replaced with ExecutionMode#SKIP_RULES

In addition:
- all the events inherit from java.util.EventObject
- additional convenience methods wrapNoExecute(.) and wrapSkipRules(.) in WrapperFactory.
ISIS-550: working on ActionInvokedEvent, adding integration tests.

This is nearly there, but there is an issue with the open/close of services in the integration tests that needs addressing.
Merge branch 'ISIS-550'
ISIS-550: refactored DomainObjectInvocationHandler and ImperativeFacets

Previously DOIH (that the WrapperFactory's wrapper proxies delegates to) was hard-coded to search for particular ImperativeFacets and act accordingly.
This has now been abstracted out into the concept of an Intent (enum defined in ImperativeFacet) which allows more precise control as to how to interpret any given method that is invoked through the wrapper .

In addition:
- split PostPropertyChangedEventFacet into two: PostsPropertyChangedEventSetterFacet and PostsPropertyChangedEventClearFacet, so that both can wrap an underlying *FacetViaMethod.
  This pattern is then consistent with the PostsCollectionFacets (though not the PostsActionInvokedEventFacet)
- (related to ISIS-769), have moved the setup of request-scoped services from the PersistenceSession#open and into IsisTransactionManager#startTransaction.  This is for symmetry with the #endTransaction.