Made methods non-static. No need.
Used interface instead of class.
Added shell script for linux computers.
Added a check for the java compiler.

Without the check, an opaque error appears in some systems, mostly
linux.

With the check, the error is still there but more transparent.
Removed unused imports.
Removed set+unset of ad-hoc JDK environment.

Seems to fix issue #3.
Added JavaDecafException.

This will allow us to track those errors in Java Decaf preprocessing
that are currently disappearing silently.
Used an ID different from 1.
Caught JavaDecafException to show the error in preprocessing.
Added a FIXME for later.
Added a bit of rationality in the use of exceptions. No actual change of functionality.

- Methods isMethod() and processMethod() do not declare to throw
  Exception --- because they don't.

- Method convert() declares to throw only IOExceptions instead of
  top-hierarchy Exceptions: narrower more-precise declarations are
  better. The top-hierarchy exceptions this method used to throw are
  now FileNotFoundExceptions and IOExceptions ---no need to use any
  other more general type.
Updated .gitignore to ignore classes
Size of header is now calculated in real time instead of being a magic number.
Changed constant name for clarity.
Added some breaks to switch/case for correctness
and to prevent the usual case-override errors.
Fixes Issue #6.

If the token is of type FUNCTION but it is one of the classes of java.lang, it may be the return type of a method definition.
Rearranged switch cases alphabetically.
Added FIXME.
Added some pre-work to the FIXME.
Changed name of variable for clarity