Feature/support initialization from hash

Use a hash for initialisation, to provide a more declarative syntax for constructing rules engine objects.
condition:condition -> condition: condition
(space after the colon as per our style guides).