Make Routable subclass UPRouter, make [Routable sharedRouter] work from subclasses

This should fix the issues with the earlier pull request.