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.
Provide control over URI-parsing strictness
better parse_amount()
Number of changes to URI code

* Turn example into stricter unit test.
* Use boost::optional for optional value types.
* Use std::numeric_limits
Show how to handle custom URI parameters
Simplify the bitcoin amount parser

Besides having a movable decimal point, this code is shorter and
has fewer corner cases.

It was also written before the other algorithm, but is being rebased on top.
Round results in the bitcoin amount parser
Add URI writer
autogen.sh runs "autoreconf -i"
Implement hierarchical deterministic wallet keys
Merge branch 'spesmilo/master', incorporate build work in progress.