Implement a bitcoin URI parser

This parser follows the BIP 21 standard as closely as possible.
Accept URI's with illegal spaces

Some buggy bitcoin software creates these in the wild.
Working private key