Initial refactor of builder into Base and implementation, re #4

Refactored the bulk of XMLBuilder functionality into a new abstract
base class BaseXMLBuilder, in preparation for creating a new XMLBuilder
implementation that throws only runtime exceptions not checked ones.
Initial implementation of XMLBuilder2 with no checked exceptions, re #4
Refactored builder implementations to move interface to base, re #4

The abstract base class now has the full API interface, which the
implementations adapt or override large portions of to enforce the
use of specific XMLBuilder/XMLBuilder2 classes.

This is necessary to make test cases reusable over the two
implementations.
Refactored unit tests to apply to both implementations, re #4

Both XMLBuilder and XMLBuilder2 are now tested by a single base test
case class, with class-specific test stubs overridding only what is
necessary.
Add unit tests for XMLBuilder2 exception wrapping feature, re #4
Merge branch 'master' into feature/remove_checked_exceptions
Made XMLBuilder implementation classes final, re #4

Prevent subclassing of these implementations since that would get
weird quickly if someone did so without replacing all of the necessary
pieces, and such a person would likely be better off creating a new
implementation anyway based on BaseXMLBuilder.
Fix case of test class file name, re #4
Narrow exception wrapping to only specific, known exceptions, re #4
Fix code and javadoc warnings, re #4
Add documentation for new XMLBuilder2 class and API, re #4
Use XMLBuilder2 as first example in readme, re #4