BaseSchema is abstract now. Add abstract methods and a constructor to BaseSchema.

_convertColumn is now protected, no need to expose to the public API.
Fixing CS errors.
Merge pull request #1693 from renan/3.0-schema

Make BaseSchema abstract and add abstract methods to it.