Refactor to solve secure_uri issues

- matchers are now closures with arbitrary code inside
- domain and secure_domain are simple strings, but could be closures
that take the current site version as paramerter
@ivank The correct way to check this is with `is_callable`. `Closure` is only one way to provide a callable type. `Callable` could also be used in type hinting since PHP 5.4.