Caching method & field IDs for Message, MessageHeader and CircuitView and the callbacks

(adapted from the JNI documentation)
Obtaining field and method IDs requires symbolic lookups based
on the name and descriptor of the field or method. Symbolic lookups
are relatively expensive.

We cache some field IDs and objects in static methods that are called
when we first load the library (instantiation of Interface.java).
Doing so, we initialize the field IDs required by a native method before
the application can have a chance to invoke the native method.
Therefore, we don't have check to detect whether the IDs have already
been cached.
Some clean-up in applicationMessage.c
Check returned values for JNI calls in initIDsXXX functions
Check return values of JNI calls in applicationMessage.c
Fix errno value in calls of ERROR_AT_LINE