[test] router base
[test] routes and router; [cleanup] remove deprecated exceptions
[refactor] rename Engine to Router and Route\SubRouter to Route\NestedRouter
[clean] deprecated SubRouter, missed in last commit
[refactor] move Router\Router\*Exception to Router\*Exception and renamed Router\UnmatchedException to Router\ReferenceNotMatchedException
[add] [test] router locator interface and exception
[refactor] make RouteInterface extend MatchCandidateInterface (instead of having Route\Base implemeting both) to allow mocking all methods in one go, get rid of a testing file created for that purpose