Newtypes ( issue #231 )

This patch has implementation of newtypes as described in issue #231.

The code introduces 3 non-exhaustive pattern matches. The reason is, even though a newtype declaration can only have one constructor, and that constructor can only have one field, `haskell-src-exts` parser returns a list of constructors, and a list of fields for each constructor (same as data type declarations).

So that unmatched patterns should never come in practice unless there's a bug in `haskell-src-exts` parser. I couldn't find a proper error to throw in that cases, so I left those places unfilled.