only set the __colanderalchemy__ attribute on the sqlalchemy object once

I noticed a while ago that `setup_schema` was being called multiple times causing the `SQLAlchemySchemaNode()` to be called multiple times unnecessarily.  I don't completely understand why this is happening, but I modified the method to only add the attribute if it hasn't already been added to stop all the additional calls.

When I run the `test_defaultmissing_primarykey()` I noticed that `setup_schema` was being called 9 times for both `User` and `Widget`.  That happens when the manual call to `SQLAlchemySchemaNode(User)` and `SQLAlchemySchemaNode(Widget)` are made.