Remove support for update with joins.

This feature is inconsistently implemented or not implemented across all
drivers. What is implemented consistently across all drivers is the
ability to do update/delete with subquery conditions. This will be the
recommended/documented way to preform multi table update/delete
operations.
Add a BaseSchema class and move methods that are purely duplicated down.