[java] Strict class name encoding

This patch enhances name handling for Java platform.

 * Classes with a encoded file name are supported, e.g. `packageName/SingletonClass$.class`, `packageName/SingletonClass$$plus$.class`.
 * Methods start with a dollar are supported.

Now `haxe -java-lib` can import some classes compiled from Scala. Though patch files are still required if these Scala classes use complex type covariance / contravariance.