Correctly insert parentheses on non-atomic bang-ed types.

Example of previous erroneous behavior:
```Haskell
  !Maybe a
```
New correct behavior:
```Haskell
  !(Maybe a)
```
Note that this only mattered for programmatically constructed ASTs -
for parsed code, the parentheses were already explicitly included
in the parse tree.