Migrate BTM to JDK6.

Main features:
- Use JDBC 4.0 API, e.g. SQLException.
- XA state is now an enum.
- Use Charset objects for UTF-8 and US-ASCII encodings, which every JDK *must* support.
- Add lots and lots of @Override annotations.
- Enable "unchecked" and "deprecation" compiler warnings, and resolve all of them.
- Make object fields final where possible.