HBASE-12550 Check all storefiles are referenced before splitting

Summary: If there are bugs in HDFS move and/or create we should protect against them by making sure that all files referenced end up in split daughters.

Test Plan: Unit tests cover splits pretty well

Subscribers: matteobertozzi

Differential Revision: https://reviews.facebook.net/D29373
HBASE-12471 Task 4. replace internal ConnectionManager#{delete,get}Connection use with #close, #createConnection (0.98, 0.99) under src/main/java

Move from HConnection to ClusterConnection or Connection
Use unmanaged connections where we use managed previous
(used the jdk7 https://docs.oracle.com/javase/7/docs/technotes/guides/language/try-with-resources.html idiom).

In ZKConfig, synchronize on Configuration rather than make a copy.
Making a copy we were dropping hbase configs in certain test context
(could not find the zk ensemble because default port).

In tests, some move to the new style connection setup but mostly
fixes for premature connection close or adding cleanup where it
was lacking.

Conflicts:
	hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMultiParallel.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestDistributedLogSplitting.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.java
HBASE-12471 Task 4. replace internal ConnectionManager#{delete,get}Connection use with #close, #createConnection (0.98, 0.99) under src/main/java
HBASE-12495 Use interfaces in the shell scripts (solomon duskis)

Conflicts:
	hbase-shell/src/main/ruby/hbase/quotas.rb
HBASE-12550 ADDENDUM Make HRegion's api not change.