Adding type aliases

This patch adds aliases to types, so they can still use TDS names while still being available under "official" names:

TDS name            | Documented name
-------------------------|--------------------------
UniqueIdentifierN  | UniqueIdentifier
TimeN                   | Time
DateN                   | Date
DateTime2N         | DateTime2
DateTimeOffsetN | DateTimeOffset

It also makes sure, that no type can be overriden by alias (to prevent errors from possible mistakes when declaring aliases) and adds test for that.