Little fix in optimizer-framework.

-- When a JDeclaredType is pruned, remove its methods and types
in optimizer context.

-- Override visit and endVisit functions for JConstructor and
JVariable, and make them to be final. The reason is that
visit/endvisit(JConstructor) has two entry points, which are
visit/endvisit(JConstructor) and visit/endvisit(JMethod),
and visit/endvisit(JField) has two entry points, which are
visit/endvisit(JField) and visit/endvisit(JVariable).

-- Track EnumOrdinalizer in optimizer context.

-- Add an execImpl function in DeadCodeElimination that
accepts a Set<JMethod> as a parameter and traverses the
set of methods by one visitor in order to reduce the cost
 by JavaAstVerifier after each traverse.

-- Add unit test for JChangeTrackingVisitor.

Change-Id: If5ed4991ea2d6c680a0210bd974d9c6d0551991e