More instances

This adds a number of instances that I needed for my GSOC to work nicely, in particular RealFloat. The general method is to use the lift*NS family, which only work on constant expressions and error on symbolic expressions. I believe this was the previous behavior of Enum, so it's basically just extending that idea to all of the various numeric classes in the Prelude.

I took out the special-case behavior for SDivisible SInteger in favor of a generic check; I ran the arith test suite and it still passed.