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? 


I think you'll always want an async result specifically because you *always* need a way to handle errors.  And that's what async result gives you... no?  I'm going to make the change and we can change it later if need be (as you say).  :)