Implement support for unary arithmetic functions #11
I wanted a type level logarithm for some experiments, so I've implemented support for unary functions here. Previously, one could make a two-argument function that just didn't make use of its argument, but it looks messier than directly implementing one-argument function.
Also, I added a proptest for it (using QuickCheck) since that seemed easiest, and then some other proptests while I was trying to debug... Whether you want to keep the tests that way is up to you.