DDL component fixes

* fix some column definitions (blob, text, integer, bigint, varchar, char)
* add column def (datetime)
* add Index constraint type
* add AlterTableDecorator for Platform
* adjust tests to be compatible with new definitions
Okay, maybe not **huge**, but it **is** a problem to change the signature of a method or constructor, even if it's for good reason. Can you justify this?

I realize this will likely only be created by a DDL instance, but in case somebody _were_ directly instantiating this previously, this would cause existing code to break.