Adding Router files and organization

+ Created router files and route matching/exceptions
+ Created `core` directory for
 + Base `Exception` class
+ Updating exception classes to derive from base