Closing a connection that has usageCount > 1 "should never happen". However, it can happen if JdbcPooledConnection.getConnectionHandle() throws an exception - e.g. if testConnection() fails. So ensure that JdbcPooledConnection.getConnectionHandle() decrements usageCount again if it fails, and sets the connection's  state to NOT_ACCESSIBLE.

This fix is currently only for "correctness" w.r.t. JdbcPooledConnection's documented semantics. The only visible effect is seeing fewer warnings in the log.
Some classes return clones of their Properties fields instead of direct references (e.g. connectionProperties on OracleXADataSource). Modify PropertyUtils to handle such cases, and test the ResourceLoader's behaviour.
Merge branch 'cloned-properties' into cauldron

Conflicts:
	btm/src/test/java/bitronix/tm/mock/resource/jdbc/MockitoXADataSource.java
Merge branch 'fix-usage-count' into cauldron

Conflicts:
	btm/src/main/java/bitronix/tm/resource/jdbc/JdbcPooledConnection.java
Fix references to XA states in comments, and remove unused import.
Merge branch 'jdk6' into cauldron

Conflicts:
	btm/src/main/java/bitronix/tm/resource/jdbc/JdbcPooledConnection.java