Coinops

See [this thread](https://groups.google.com/d/msg/bitcoinj/2saptvKy51o/09CEEmUs1qQJ) for background.  This request adds the discussed operators, plus some others.  Also makes it possible to pass a negative value to `parseCoin()` without raising an exception.  The maximum value check is now done on the object's absolute monetary value to catch negative values with excessive magnitude, and the check is now in the constructor to catch excessive values passed to `valueOf()`.

Question of style: in the javadoc comments the word "Bitcoin" is capitalized when used as a unit of measurement.  Internet sources (some more authoritative than others) seem to indicate currency units are not to be capitalized, for example:
* [english.stackexchange.com](http://english.stackexchange.com/questions/26378/case-of-usd-united-states-dollar-or-united-states-dollar)
* [English Language Learners](http://ell.stackexchange.com/questions/17517/why-arent-currency-names-capitalized)
* [Wikipedia Style Guideline](http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Numismatics/Style#Article_titles)
* [answers.yahoo.com](https://answers.yahoo.com/question/index?qid=20070924080401AAlXxVZ)

Ought this to be changed so that "bitcoin" is not capitalized when used as a unit of measurement?  For example, is the following correct:

    A satoshi is the smallest unit that can be transferred. 100 million of them fit into a Bitcoin.
Because this is the class constructor, and since `COIN` is an instance of this class there's no way to get `COIN` in the constructor; it causes infinite recursion.  At least it seems so to me; correct me if I'm mistaken.