Allow Dispatch to be subclassed

Basically the macros only allow arguments of known types, either simple
types (String, Int, Float, Bool) or objects - the only allowed objects
were instances of sys.db.Object subclasses or haxe.web.Dispatch instances.

This patch also allows arguments that are a sub class of haxe.web.Dispatch.

It also makes redirect() public so that the Redirect exception can be
caught by a subclass
Merge pull request #2144 from jasononeil/feature/allowdispatchsubclass

Allow Dispatch to be subclassed