Added support for indexes in the model and throughout the stack.

Added ability to annotate keys using the model builder.
Updated the MetadataExtensions for model builder to work with the APIs that use names for entity types, properties.
Clustered vs. non-clustered is a general concept and equivalent functionality exists across many relational database systems but as far as I know very few (e.g. SQL Server and Sybase) allow you to specify it like this at index creation time, so I think moving it to be SQL Server specific is the right call.