Implement the 'data type' syntax and checking

  Add a new form of data declaration where the 'type' modifier can be used
to prevent data promotion.  For example

  data type T = K

will not yield a promoted kind T, and promoted type K, even though they are
in principle promotable.