Fix imprecision in type inference when merging a point array type and cone array type

In TypeInference when merging a PointType with a ConeType it is safe to return the cone type if
the underlying types are the same. Previously, if an array cone type and array point type were
merged this would result in a java.lang.Object even when the two arrays had the same base type.
Checking for equality first may also save a few cycles for reference types since the
isSubclass check is no longer performed for identical types.
commit GetMethod context, interpreter and selector
improve doc comments
move GetMethod context, interpreter and selector into appropriate package, fix copyright notice
fix doc comments
remove empty package
add test for GetMethod context, interpreter and selector
use a more precise (covariant) return type for BitVectorIntSet.intersection
Update SSAConditionalBranchInstruction.java

Changing SSAConditionalInstruction.isObjectComparison(): previous definition returns true for comparisons of Primordial scope objects, but false for Application scope objects. The update version returns true in both cases
more detail in assertion
more detail in assertion
1) compress dumped call graph edges
2) make instrumentor preserve the names of jar entries and classes as
they are input, rather than recomputing class names when writing the
output jar.  This usually makes no difference, but can preserve broken
structures when the input jar file has mismatches between class names
and its entry names.
fix missing parentheses in test to fix null pointer crash
1) use less verbose instrumentation to reduce problems with methods
getting too big
2) handle issues with exceptional control flow not being followed
properly sometimes
threading support
test new mechanisms
a couple of wrappers
allow specialization of source name map generation
propagate source names in prototype lookups
find arguments array vns