Merge pull request #160 from dicej/master

fix ProGuarded OpenJDK build and LZMA-compressed jar support
implement java/util/Observ*
Add StringIndexOutOfBoundsException and use it in String
Merge pull request #161 from soc/topic/SIOOBE

Add StringIndexOutOfBoundsException and use it in String
Implement single quotes in MessageFormat
Merge pull request #162 from joshuawarner32/master

Implement single quotes in MessageFormat
Implement java.util.Objects
Merge pull request #163 from soc/topic/java-util-objects

Implement java.util.Objects
implement Arrays.deepEquals and Objects.deepEquals
Merge pull request #164 from joshuawarner32/master

implement Arrays.deepEquals and Objects.deepEquals
do not omit calls to empty methods which may trigger class initialization

There's a small optimization in compileDirectInvoke which tries to
avoid generating calls to empty methods.  However, this causes
problems for code which uses such a call to ensure a class is
initialized -- if we omit that call, the class may not be
initialized and any side effects of that initialization may not
happen when the program expects them to.

This commit ensures that the compiler only omits empty method calls
when the target class does not need initialization.  It also removes
commented-out code in classpath-openjdk.cpp which was responsible for
loading libmawt proactively; that was a hack to get JogAmp to work
before we understood what the real problem was.