Allow setting ColanderAlchemy options in sqlalchemy type

This allows for an extra location for customization of the schema inside a `column.type`. It looks for the `__colanderalchemy_config__` attribute in the type for customization. This allows for:

```Python
import colander
from sqlalchemy import Column, Integer, Unicode
from sqlalchemy.type import TypeDecorator
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Email(TypeDecorator):
    impl = Unicode
    __colanderalchemy_config__ = {'validator': colander.Email}

class User(Base):
    __tablename__ = 'user'
    id = Column(Integer, primary_key=True)
    email = Column(Email, nullable=False)
    second_email = Column(Email)

schema = SQLAlchemySchemaNode(User)

```
Being equal to the following colander schema:
```Python
import colander

class User(colander.MappingSchema):
    id = colander.SchemaNode(colander.Integer(),
                             missing=colander.drop)
    email = colander.SchemaNode(colander.String(),
                                validator=colander.Email())
    second_email = colander.SchemaNode(colander.String(),
                                       validator=colander.Email(),
                                       missing=colander.drop)
```

Where both email columns will be validated with `colander.Email`, but `email` will have missing required and `second_email` missing drop in the colander schema.
Okay, I see what's going on there.  Basically "missing" has no effect in `__colanderalchemy_config__`.  These seems kind of counter-intuitive since it _is_ used with the other types of overrides on lines 341-342 (your new code) of schema.py.  You may want to match what's being done with `declarative_overrides` and `overrides` so people can put whatever they'd like in there and have it passed on as an override.