Add callbacks to the local device when links or connections are made or destroyed.

Had to move the definition of struct _mapper_device to
mapper_internal.h in order to make reference to function typedefs from
mapper.h.
Merge branch 'master' into connectcb
Added user_data argument to device-side link/connection callbacks; added signal pointer to connection callback.
Call link/connection callbacks for inputs (receivers) also.
Added function for getting the number of connections attached to a specific signal.
Add local device name to device-stored link properties since we are now using link props in callbacks.
Implement a custom transport mediated by signal/connection properties.

On connection, this program establishes a TCP connection during the
connection callback and uses it instead of msig_update().

Therefore, in this case libmapper is used only to determine the
destination IP and to establish the connection, but it performs no
data transformation or transmission.  Rather, the program specifies
this itself, determined by specifying a custom transport in the signal
properties which are copied to the /connectTo message.
Merge branch 'connectcb' into customtransport
Merge branch 'master' into connectcb
Refactoring callback names.
Merge branch 'connectcb' into customtransport
Add some missing mdev calls to JNI bindings.

The following functions were added:

- mdev_num_links_in
- mdev_num_links_out
- mdev_num_connections_in
- mdev_num_connections_out
- mdev_id
- mdev_start_queue
- mdev_send_queue

A rudimentary, non-functional TimeTag.java class has been added for
the last two functions, but needs work.
Include the other JNI-generated headers, and fix some detected function prototype problems.
Update documentation for msig_update() with regards to timetag value.
JNI: Add an initializer for TimeTag supporting sec/frac pair.
JNI: Add optional timetag support to Signal.update().
JNI: Add support for msig_value().

User must call Signal.value() with a valid array of the correct size,
and optionally a valid TimeTag object.  The function returns a boolean
indicating whether the signal has a value.
JNI: Add optional timetag argument to Signal.query_remotes().
JNI: Add Signal.set_rate() and Signal.rate().
Remove pointless msig_get_rate() and use signal props interface instead.