RXTXPort: removed unclear javadoc comments

The file contained completely useless documentation. The derived
methods are documented at interface level anyway. End user
documentation at the implementatio level makes so sense at all.
java: refactored code style (private variables)

Many variables are not named after the java code conventions and
some are therefor renamed here to be compliant.
java: added/updated javadoc

The code contained some non javadoc conforming comments which were refactored
to valid javadoc. The added javadoc is derived from background knowledge
about the library and perceptions made from a code review. Because of the
absence of a specification the javadoc is based on assumptions how rxtx might
be intended to work. It can not replace these missing contracts.
java: added code review remark comments

TODO comments were added to mark possible bad API design practices and
code bugs. Because these problems are spread across the whole library
the intention is to mark and collect them first. Then these problems can
be resolved in logical chunks.
review comment: logger exception must not be exposed

The logger is an implementation detail and must not be exposed
to the user.
Merge branch 'code-review' into development
removed implied modifiers

The public and abstract modifiers on methods as well as the
public, static, final modifiers on fields are implied in the context
of interfaces. Therefor they are considered to be redundant and
are removed here.
CommPortIdentifier: prevent inheritance by users

CommPortIdentifier is a pure API class with a call-only semantic.
It is not intended to be subclassed, not by users nor by drivers.
Therefor it is marked here as final.
impl-serial: hide driver class from API users

The driver implementation must not be available to API users
because they must not rely on implementation details. The
export was a huge mistake all the time. We might break some
implementations with this change! However I think it is
important for future rxtx versions. In the meantime
backports should mark the class as deprecated.
The driver is marked as final for performance reasons.
impl-serial: hide Zystem from API users

The Zystem class must not be available to API users
because they must not rely on implementation details. The
export was a huge mistake all the time. We might break some
implementations with this change! However I think it is
important for future rxtx versions. In the meantime
backports should mark the class as deprecated.
impl-serial: hide port implementation from API users

The port implementation must not be available to API users
because they must not rely on implementation details. The
export was a huge mistake all the time. We might break some
implementations with this change! However I think it is
important for future rxtx versions. In the meantime
backports should mark the class as deprecated.
api: made driver event classes final

The API user must not be able to abuse event objects for own
purpose by subclassing, because when we add methods to these
classes they could colide with methods in the subclass.
This commit might break user code! Backports should only add
a note to the javadoc and not add the final modifier.
api: fix method intent for fireOwnershipEvent

CommPortIdentifier.fireOwnershipEvent method is only for use
within the class itself, but was exposed to the whole package.
api: hide LibraryLoader from API users

LibraryLoader is an implementation detail which must not be
available to the user. Since this class is relatively new we
will only break very few implementations, I think.
api: hide port event creation

The *PortEvent classes are intended to be created by drivers only.
However due to a design failure the constructors were expored in
the past. This is solved by this patch.

Now, the *PortEvent class' constructors are hidden to package
visibility. They are therefor no more available to the API user
which is good.

Because the drivers which are required to use these constructors
are also in a different package, they can't create PortEvents
directly. For this purpose the new class EventFactory was created.

EventFactory is a singleton factory class which creates
PortEvents on request. Although this class is public the API user
can not obtain instances of it by accident.

All drivers obtain the singleton instance of EventFactory via
their DriverContext instance. An instance of the new
DriverContext class is passed to every registered driver
(registration is currently hard coded) via the initialize()
method.

This patch contains factory methods for serial and parallel
port events. Other events are not exported because it is very
likely that this functionality will be removed from rxtx in
this review branch.
spi: added explicit port constructors

All ports have immutable names which must be set at creation
time. This is now enforced using a final name field and
a constructor.
removed unused public report method

RXTXCommDriver.Report() was a stupid forward method
to call System.out.println() from ancient native
driver.

Since it was public this might break user
code! However the method didn't do something useful
and so the chance to beak code is minimal for backports.
Merge branch 'review/visibility' into development

This feature branch fixed some important API visibility
issues. Many of them have a big impact on the API
itself. When backporting these changes care must be
taken to stay compatible with the version 2.x API.