Regex dispatcher for `resource`

We might want to break up the resource function which converts URI's into data objects of some form or another.  We can't use our normal dispatching tricks here because we can't dispatch on type.  

Instead lets dispatch on regular expressions
```Python
    >>> f = RegexDispatcher('f')

    >>> f.register('\d*')
    ... def parse_int(s):
    ...     return int(s)

    >>> f.register('\d*\.\d*')
    ... def parse_float(s):
    ...     return float(s)

    Set priorities to break ties between multiple matches.
    Default priority is set to 10

    >>> f.register('\w*', priority=9)
    ... def parse_str(s):
    ...     return s

    >>> f('123')
    123

    >>> f('123.456')
    123.456
```

cc @talumbau 
We could definitely switch it.  I was pretty uncertain myself.  Should build consensus first.