ACCUMULO-2564 Backport changes to unify Hadoop 1/2

This is a backport of the changes made for Accumulo 1.5.0 and 1.5.1 to
establish binary compatibility with both Hadoop 1 and 2 branches. This
work was originally done under several commits and issues, as outlined
below. Additionally, there was some new work that needed to be done,
but is not applicable to later branches.

ACCUMULO-1421, commit c9c0d45 by Adam Fuchs
ACCUMULO-1421, commit d7ba6ca by Christopher Tubbs
ACCUMULO-1421, commit 261cf36 by Eric Newton
ACCUMULO-1421, commit cc3c2d8 by Eric Newton

Issue: ACCUMULO-1809
Author: Eric Newton
Reason: use reflection tricks to update counters
Commit: a7e159219a29ca6f127616fd965aa857900e3f9c

Issue: n/a
Reason: Delegate reflection to ContextFactory

The InsertWithOutputFormat functional test uses ContextFactory, so we
have to update that to use the reflection hack as well. And while we're
there, might as well keep the code in one place.
Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT
ACCUMULO-2566 More reflection for hadoop 1/2

Pull counter reflection out of ContinuousVerify and apply it to server
utils that are using it.
Add reflection to TeraSortIngest.
Merge branch '1.4.5-SNAPSHOT' into 1.5.2-SNAPSHOT

Conflicts:
	src/examples/simple/src/main/java/org/apache/accumulo/examples/simple/mapreduce/TeraSortIngest.java
	src/server/src/main/java/org/apache/accumulo/server/test/continuous/ContinuousMoru.java
	src/server/src/main/java/org/apache/accumulo/server/test/continuous/ContinuousVerify.java
	src/server/src/main/java/org/apache/accumulo/server/test/functional/RunTests.java