Complete refactor

* 100% test coverage
* Defensively programmed from the start
* Improved test suite
* Improved interoperability between strings, arrays and regexps
* No more undefined keys
* Removed ability to regexp outside of parameters
* Removed nested regexp inside parameters
* Updated readme