ASACORE-775 About Feature rework - Java language bindings

Initial work for the About Feature rework adding the Java
language bindings this adds in the AboutListener, the
BusAttachment methods registerAboutListener and whoImplements.

Registering the AboutListener was done completely in Java not
using JNI. This was done because it was much simpler than
building the JNI layer and should be easier to maintain.
Things like the call to whoImplements still goes through the
JNI layer.

- Created AboutListener class
- Created BusAttachment methods registerAboutListener,
  whoImplements, cancelWhoImplements
- Add the announced BusInterface annotation.
- Add the isAnnounced method to the InterfaceDescription class
- Adds the language binding for the AboutObj
- Adds the JAboutDataListener class that is used to make an
  announcement as well as convert the value returned from a
  Java AboutDataListener to the value returned by a C++
  AboutDataListener.
- Updates to the About Client sample it no longer looks checks
  the signature of the Variant before trying to convert the
  variant to a Java type.
- Adds an About Service sample used in testing.
- The About Service sample contains a really simple
  AboutDataListener implementation.
- Add the AboutProxy class that lets the user call About
  Feature methods
- Add About Client sample to use the AboutProxy class.
- New unit tests to test the AboutListener
- New unit tests to test the AboutProxy object
- The AboutDataListener throws ErrorReplyBusException which
  makes it possible to throw Status.LANGUAGE_NOT_SUPPORTED
- Additional code to catch the LANGUAGE_NOT_SUPPORTED
  exception

Change-Id: I8113f18fc857491a502aac8b869d10bbc1065774
Signed-off-by: George Nash <georgen@qce.qualcomm.com>