https://issues.jboss.org/browse/APIMAN-105 (2)

With modifications from prior PR as suggested by @ewittmann and some improvements to EngineResult which allow the results to actually be set!

---------------------------------------

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?