https://issues.jboss.org/browse/APIMAN-105

- New beans representing a Policy and PolicyFailure

- New asynchronous interfaces to more generically handle async events

- Policy and policy chain related interfaces

- Refactor engine interface, and temporarily stub implementation to work with new async interfaces

Some thoughts: 
  - I've added some new packages, but could easily be convinced various bits belong elsewhere.
  - IPolicyContext is empty at the moment, but I've mapped a few ideas on cloud9
  - We need a “reason for failure” in the PolicyFailure bean - but how to represent? Perhaps a ‘PolicyState’ of some sort that encapsulates the relevant failure state info of the Policy? 


The reason I decided to have this as a plain event was that we could reuse it for any async stuff that required a handler (which may not always be an IAsyncResult); perhaps an async handler for when the whole  body of a message has been received, like 'IAsyncHandler<BodyContents>' or similar.

Perhaps for now we can do it your way and refactor if we really need it. I agree your way has less clutter.

( now I read this, I realise it would necessitate changing the execute method signature in Engine slgihtly)