Fix incorrect default for API spec parameter

The @web.api() decorator takes a specification for the 'spec', which
contains (among other things) API documentation for a class. The method
was previously defined like this:

    def __init__(self,spec={}):
        self.spec=spec

When a parameter is given a default value, Python only evaluates that
once - at the time of the class definition. In the above case, where
web.api() was called using the default, then each class would end up
with a reference to the same dictionary. When this dictionary was later
modified to set the 'read' property, that modification would apply to
all classes that did not have their spec explicitly given.

Now, the method is defined as follows:

    def __init__(self,spec=None):
        if spec == None:
            spec = {}
        self.spec=spec

None is an immutable value, so if the method is called without a spec
being given, then that's what we'll get. In such a case, we now create a
*new* dictionary and assign it to the object's spec attribute. Thus,
each class has a unique spec. This avoids incorrect documentation for
some classes being returned, where it would say that GET 'Returns a
Resolver', because that's what happened to be the last 'read' value set
in the shared dictionary.