Add support for multidimensional arrays
Add control of JVM startup options
Fix tests

- set classpath to find NativeInvocationHandler
- fix signature checking test to pass when it throws the correct
  exception
- throw a distinguishable exception
Merge branch 'jvmoptions'
Merge branch 'fixtests'
switch to setuptools to distribute the NativeInvocationHandler class
Use setuptools testing; clean up NativeInvocationHandler test
Prevent being able to call non-static methods on class objects

Previously, tests would fail if performed in a particular order, where a
Stack() was instantiated and then later Stack.push(...) was expected
to fail. An explicit test for this has been added.
This fix creates a new JavaMethod for every instantiated object, which
is probably not memory-optimal, but is a simple fix.
Clean up control files
Incorporate patch from #96 and a unit test
Add improved exception handling:

- Disable calling ExceptionDescribe, as this pollutes stderr, making it harder
to implement clean exception handling. JNI documentation describes it as being for
debugging purposes.

- Extract separate fields for the exception class name, exception message, and
exception stack trace, and add these as attributes to JavaException. Calling
code can now decide for itself whether and how to present this information.
Merge remote-tracking branch 'abrasive/master'
Merge remote-tracking branch 'lenbok/issue-96-exception-handling'

Conflicts:
	tests/test_bad_declaration.py