WIP: Add support for bitcoin URIs (BIP21)

Design considerations:
* Only allow creation of valid objects, Immutable interface
* Provide an static method `isValid`
* Provide an static method for parsing bitcoin URIs, thus can be reused by payment protocol.

Pending:
* Documentation
* Conversion from `bitcoins` to `satoshis`