Invariants

Adding support for documenting variance info, as requested in #259, for example:

```
{-@ data variance Foo invariant bivariant covariant contravariant @-}
```
specifies variance info for all four type variables of 

``` 
data Foo a b c d
```


TODO: document that before merging.