clib.h: fix C_GNUC_UNUSED typo
curses-debug: sort split log based on timestamps
proto: Add SlaveMaster + Slave debug protocol
clib: fix s/C_LOG_FLAC/C_LOG_FLAG/ typo
curses-debug: use colors for log levels
rpc: update apis to work in terms of streams

This is a stepping stone towards using libuv streams in the rpc layer
with improved portability and hopefully less code to maintain in rig
itself.
rpc-network: Fix incorrect copyright headers

There was a leftover copyright header relating to the protobuf-c project
since rig-rpc-network.c used to have a copy of the dispatching code from
protobuf-c that was removed in 55ca089892d6d204ac82ece07d3973ec02072b4b

There was also a leftover LGPL header since Rig was re-licensed. This
code has been stripped down since it was first introduced to help
integrate the protobuf-c-rpc api and the aim is to remove the need for
this entirely at some point. What's currently left is just a trivial
shim over the protobuf-c-rpc api written by me (copyright Intel
Corporation) so it looks fine to update the header now.
cogl-atlas-set: Fix copyright header

It was an oversight that cogl-atlas-set.c has an LGPL header instead of
the MIT header, since I started the atlas-set code on a branch before
cogl was re-licensed and didn't notice it had the wrong header when
rebasing after the re-license.
rut-poll: Fix copyright header

It was an oversight that the rut-poll.h header was added with an LGPL
copyright notice. The code landed soon after the codebase was
re-licensed but I expect it was started on a branch before the
re-license. It was also originally based on code (copyright Intel
Corporation) from Cogl that has also been re-licensed under the MIT
license.
carray: use growth exponent of 1.5

This switches carray to using a growth exponent of 1.5 instead 2 so
in situations where an array is repeatedly grown there is a better
chance of being able to incorporate the memory of earlier sizes.

I can't say I've scrutinised this myself but based on this write up for
example it seems likely to be better:

https://github.com/facebook/folly/blob/master/folly/docs/FBVector.md

Obviously tweaking an exponent is a trivial thing to do and fingers
crossed the new number is better for something, but it could also make
sense for us to depend on a specific allocator (probably jemalloc) and
look at real metrics.
rut-memory-stack: use growth exponent of 1.5

This switches rut-memory-stack to using a growth exponent of 1.5 instead
2 so in situations where an array is repeatedly grown there is a better
chance of being able to incorporate the memory of earlier sizes.

I can't say I've scrutinised this myself but based on this write up for
example it seems likely to be better:

https://github.com/facebook/folly/blob/master/folly/docs/FBVector.md

Obviously tweaking an exponent is a trivial thing to do and fingers
crossed the new number is better for something, but it could also make
sense for us to depend on a specific allocator (probably jemalloc) and
look at real metrics.
clib: remove filenames from source + 'eglib'

The clib code started as a copy of eglib from the Mono project with
files starting with 'g' instead of 'c'. In general it doesn't seem
useful to duplicate the filename in the source and since the names have
changed now this patch strips the declared filenames. Similarly this
removes some out of date references to the 'eglib' project name.
Big cleanup of rpc layer, inc. switch to libuv

There are several reasons for this re-work:
- Deleting *lots* of code which doesn't need to be maintained
- Things are generally simplified by starting to assume everything is a
  peer (where server/client state is just an implementation detail). In
  particular we want to treat slave connections as peer-to-peer so we
  can forward logs from slave devices.
- Getting close to the point where we can remove the rig-rpc-network
  shim.
- Improved portability by leveraging the libuv stream apis.
replace some use of g_message with c_message
curses-debug: fix setting per-message color
Add initial rig_text_t component

UI text used to be handled by rut_text_t but now the aim is to handle
text shaping, wrapping and rendering more directly in Rig. This will
give us tighter control over typography and over layouting + rendering
optimizations compared to what we have currently with CoglPango for
example. This also lets us avoid some dependencies including glib,
pango and cairo.

This builds on Freetype for glyph rasterizing, Harfbuzz for shaping, ICU
for implementing the unicode bidirectional text algorithm + providing
unicode meta data and Fontconfig for matching fonts.

Since the above libraries are relatively small and portable (with the
exception perhaps of libICU) we don't introduce any further layer of
abstraction for portability which helps keep our code fairly small and
malleable as Rig's needs evolve.

With regards to ICU, we use a modified version of ICU that builds using
automake and libtool and provides some extra apis that allow Rig to
be fully responsible for loading and caching ICU data. Considering the
aim to support using Rig in a browser, the plan is to split the ICU
common data up so it can be downloaded to clients on demand.

A key aim here is to provide consistency across the different platforms
that we want Rig to support which would be difficult if rasterizing and
shaping behaved slightly differently on each platform for example.
XXX: disable play mode input temporarily