Pattern Match Failures

Adding `totality` flag to activate totality check.

LiquidHaskell can prove the absence of pattern match failures (like Neil Mitchell’s [‘catch’](http://community.haskell.org/~ndm/catch/) )

GhcCore calls patError for missing patterns, so we just type
```
patError :: {v:Addr# | 0=1} -> a
```

See `tests/[pos|neg]/SafePartialFunctions.hs`

All *basic* (run with `make test`) tests pass.