Misc changes

Here's my reasoning about my changes to the warnings flags:

* I removed `-fno-warn-incomplete-patterns` because it means that it's easy to miss places where code throws exceptions.  When it can be proven that the case won't happen, I think it's best to use a case like `_ -> error "Impossible: here's why"`.  The main issue with this is that I needed to comment out an instances `SPECIALIZE` pragma, or get a pile of `match_co: needs more cases` warnings.  Seems like something's wrong there!
* `-fwarn-incomplete-record-updates` is a warning I think should be implied by `-Wall`.  Records for sum types are a code smell, anyway.
* I removed `-fno-warn-orphans`, because I think it's best to be aware of what orphans a package exports.

I didn't fix the following warnings:

```
Building lensref-0.3...
Preprocessing library lensref-0.3...
[1 of 9] Compiling Control.Lens.Simple ( src/Control/Lens/Simple.hs, dist/build/Control/Lens/Simple.o )
[2 of 9] Compiling Data.LensRef.Class ( src/Data/LensRef/Class.hs, dist/build/Data/LensRef/Class.o )
[3 of 9] Compiling Data.LensRef     ( src/Data/LensRef.hs, dist/build/Data/LensRef.o )

src/Data/LensRef.hs:148:1: Warning:
    Defined but not used: ‘correction’
[4 of 9] Compiling Data.LensRef.Common ( src/Data/LensRef/Common.hs, dist/build/Data/LensRef/Common.o )
[5 of 9] Compiling Data.LensRef.TestEnv ( src/Data/LensRef/TestEnv.hs, dist/build/Data/LensRef/TestEnv.o )

src/Data/LensRef/TestEnv.hs:183:3: Warning:
    Pattern match(es) are non-exhaustive
    In a case alternative:
        Patterns not matched:
            (ReadI :>>= _, Return _)
            (ReadI :>>= _, (Message' _) :>>= _)

src/Data/LensRef/TestEnv.hs:283:3: Warning:
    Pattern match(es) are non-exhaustive
    In a case alternative: Patterns not matched: ReadI :>>= _
[6 of 9] Compiling Data.LensRef.Pure ( src/Data/LensRef/Pure.hs, dist/build/Data/LensRef/Pure.o )

src/Data/LensRef/Pure.hs:326:1: Warning:
    Defined but not used: ‘updateFun’

src/Data/LensRef/Pure.hs:383:1: Warning:
    Defined but not used: ‘allUnique’
[7 of 9] Compiling Data.LensRef.Fast ( src/Data/LensRef/Fast.hs, dist/build/Data/LensRef/Fast.o )

src/Data/LensRef/Fast.hs:335:1: Warning:
    Defined but not used: ‘ask’
[8 of 9] Compiling Data.LensRef.Test ( src/Data/LensRef/Test.hs, dist/build/Data/LensRef/Test.o )
[9 of 9] Compiling Demo             ( src/Demo.hs, dist/build/Demo.o )
In-place registering lensref-0.3...
Preprocessing test suite 'runtests' for lensref-0.3...
[1 of 1] Compiling Main             ( runtests.hs, dist/build/runtests/runtests-tmp/Main.o )
Linking dist/build/runtests/runtests ...
```

I imagine it's highly unlikely that these warnings about `st` are bugs, but I didn't suppress them anyway (by using `_st`), just in case.

I used this command from [here](http://stackoverflow.com/a/10120431/1164871) to strip whitespace:

```
git grep -I --name-only -z -e '' | xargs -0 sed -i -e 's/[ \t]\+\(\r\?\)$/\1/'
```