Haiku: Reorganize native class hierarchy

* We now mirror the SWT class hierarchy on the native side. There are
  abstract classes HaikuWidget, HaikuControl, HaikuComposite. They
  specify the functionality needed at that level. That allows to
  remove duplicated functionality from the native interface.
* Add HaikuComposite implementation HaikuViewComposite, which is
  templatized over BView or any derived class, which serves as a second
  super class. This way we can easily mix the functionality into any
  BView descendant.
* HaikuWindow now implements HaikuComposite and the label view uses
  HaikuViewComposite.
* Shell: Now the widget's "handle" is the window handle, since on the
  C++ we mirror the hierarchy. We keep the root view's handle around,
  but ATM it isn't used.
* Add debug tracing facility to HaikuJNIContext.
* Enable C++11 (already used for HaikuViewComposite).