Removed compile warnings

Compile warnings related to casting, generics, and deprecated
classes/methods were removed. There are still 3 categories
of warnings remaining:

(1) Cannot find annotation method 'value()' in type 'Repeatable'

This results from the usage of @Repeatable in the core
Spring framework. This annotation is present starting in
JDK 8; therefore compiling with JDK 7 or older will
show this warning.

See the following:
http://docs.oracle.com/javase/tutorial/java/annotations/repeating.html

(2) bootstrap class path not set in conjunction with -source 1.6

This results from setting a target of 1.6 when compiling with
the 1.7 javac. To guarantee backwards compatibility with 1.6,
the rt.jar for JDK 1.6 should be included in the boot classpath
for javac.

The current line of thinking is that we will enable this on the
CI server to catch any usage of 1.7 methods in the project since
it must execute on 1.6. We cannot simply compile with 1.6 on
the CI server because the tests require 1.7.

See the following:
http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html

(3)  Class JavaLaunchHelper is implemented in both...

This message appears on OS X with JDK 1.7.0_45:

objc[53170]: Class JavaLaunchHelper is implemented in both
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/java
and /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/
lib/libinstrument.dylib. One of the two will be used. Which one is
undefined.

This is a bug in the JDK that has been resolved and will be released
in u60.

See the following:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8021205