Move specification of roots to instrument()

Instead of having root classes identified as part of the parameter to
the @web.api() decorator, have them specified at the time that
instrument() is called. This way, we avoid the need to maintain a global
table of roots, which is important in circumstances where we have a
different set of roots at different times (in practice, only during test
cases).

Now, instead of the following:

    @web.api({'root':('test','/test')})
    class TestClass

you instead omit 'root' from the above, and instead pass the set of
roots as the first parameter to instrument():

    roots = { "test": ("/test",TestClass) }
    web.api.instrument(roots,auth,baseUri=uri)

This is part of the move towards avoiding global state entirely in the
hyperdns.flask package. The global table of API classes (stored in
definitions.registry) still remains to be changed.