Handle shm-newline-indent for type constructors with fields.

There were some cases that didn't seem to be handled correctly. This
partially addresses three that I noticed:
     ;; data A = A
     ;;   { a :: Int -!-
     ;;   , b :: Int -!- }
     ;; data A = A { b :: C -!- }
     ;; data A = A { -!- }