Feature/support initialization from hash

Use a hash for initialisation, to provide a more declarative syntax for constructing rules engine objects.
I don't have any issue with `fetch`