Allow use of pluggable rules

All rule repositories (knowledge base) must be pluggable since this
is the more changing artifact. It is done through an interface implementation
and passing on the path of the files to the Validator.

Changes:
    * Add contract (interface) for rule repo.
    * Add unit tests for it.