Coinops

See [this thread](https://groups.google.com/d/msg/bitcoinj/2saptvKy51o/09CEEmUs1qQJ) for background.  This request add 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.
Why don't you just use COIN.value rather than COIN_VALUE? No need to define a separate long constant for this.