More OOP based changes in java side.

Making the system simpler and more robust, and more Object Oriented, I have
added all the native methods to DcData class except the getDeviceMap method.
Also with the added exception class, it will be easier to notify user of what is
actually going on. I think this is better architecture.

Rather than showing a new activity with import progress, I am planning on
showing a dialog.
Main class has not been changed yet to incorporate the new architecture of
application.

Signed-off-by: Venkatesh Shukla <venkatesh.shukla.eee11@iitbhu.ac.in>
serialVersionUID in DcException

As throwable implements Serializable, it becomes necessary to add this
serialVersionUID which is used by Java for deserialization (I dont know what it
means :)

Signed-off-by: Venkatesh Shukla <venkatesh.shukla.eee11@iitbhu.ac.in>
Cleaning remnants of subsurface

Subsurface is no longer needed for this application. ( I don't know why I added
it in the first place. It complicated my approach too much. This could probably
cost my GSOC '14).
Appropriate changes made in build.sh to remove subsurface dependencies.

Signed-off-by: Venkatesh Shukla <venkatesh.shukla.eee11@iitbhu.ac.in>
Checks in DcData for proper input

DcData should contain values in particular form.
For ex. if vendor or product name is empty, its an error. Similarly if outfile
or dumpfile is empty, and it is needed, its an error. Similar is the case of non
positive file descriptor for opened usb device.
Added checks for these. Any of these conditions is attempted will result in
exception being thrown.

Signed-off-by: Venkatesh Shukla <venkatesh.shukla.eee11@iitbhu.ac.in>
Validata DcData before trying to import.

Added validation function. If in case the data in DcData is not valid, a
DcException is thrown. This is necessary so that invalid stuff does not go to
native side. Validation must always be done before calling for import.

Signed-off-by: Venkatesh Shukla <venkatesh.shukla.eee11@iitbhu.ac.in>
Show the split-filename rather than path

When showing divelist dialog, rather than showing the complete path, show only
the last segment.
For ex
rather than /dev/bus/usb/001/003, show 003

Extra diff are due to reformatting.

Signed-off-by: Venkatesh Shukla <venkatesh.shukla.eee11@iitbhu.ac.in>
String localisation and clean Main

Rather than sending a non localised constant string in DcData class, send
R.strings so that they can be localised as per user convinience.
Also streamlined the Main activity flow removing redundant stuff and including
the DcData exceptions.

Signed-off-by: Venkatesh Shukla <venkatesh.shukla.eee11@iitbhu.ac.in>
Build libdivecomputer_jni and codefixes

Finally, build libdivecomputer_jni.
While building, I encountered many manu errors. These were also sorted out in
the process.

Signed-off-by: Venkatesh Shukla <venkatesh.shukla.eee11@iitbhu.ac.in>
Android logging in utils.c

Use android logging in utils.c file and hence everywhere.
Also removed redundant usage function from universal.c. It is not going to be
used on android.

Signed-off-by: Venkatesh Shukla <venkatesh.shukla.eee11@iitbhu.ac.in>
Mistakes resolved and library name corrected

Numerous mistakes were found on running the code on emulator. These were
cleared in this commmit. One such error was trying object.equals(null) which is
clearly wrong. rather use object == null.
Also, I saw stacking of dialogs one ove another. Removed that bug as well.

One change was changing of libdivecomputer_jni to divecomputer_jni as
System.loadLibrary does not consider the leading lib or the lagging .a/.so
Also both libdivecomputer_jni and divecomputer_jni compiled to give same
libdivecomputer_jni.so library. Hence, its better to use divecomputer_jni module
name.

Signed-off-by: Venkatesh Shukla <venkatesh.shukla.eee11@iitbhu.ac.in>