Index node consolidation and cleanup

By collapsing IndexConstraintDefintionNode and AlterAddIndexNode, unifying the cases in the grammar and removing INDEX from the CONSTRAINT sections. This makes an INDEX in CREATE or ALTER generate the same node, as was already the case for columns and constraints, and removes the accidental allowance of multiple name specifications.

As this was an API change, also remove some unused attributes and add a few methods to IndexDefinition (the interface).

Note: Has an associated SQL Layer branch.