use a handler for encoding
hoist encoder buffers to fields
Use somewhat bigger encoding buffers to minimize calls into encoder
Make inner encode method non-static
Buffer output chars before calling handler
Optimize hex conversion
Clear all buffers so that a previous method invocation that threw an exception won't permanently corrupt the object's state
use bigger buffers by default
go back to having a 2-char encode buffer
remove unnecessary encode buf size ctor param
Switch back to non-buffered output handler
add some javadoc
Merge branch 'master' into optimization-experiments
Add JMH benchmarks
Strip off erroneous license headers
Merge branch 'optimization-experiments'

Conflicts:
	build.gradle
	src/jmh/java/com/palominolabs/http/url/PercentEncoderBenchmark.java

Some overhead from new "handler" concept, but other optimizations
improve the common case by 20-30%.