-> for version 1.0

* unit tests - some done, need:
  - locking test
  - RemoveChannel() test
  - GetAllProperties() test
  - tests for all the array and struct stuff
* MCS settings migration code
  - special backend to read config entries
* expire channels from memory if they aren't accessed for a while
* PropertyChanged signal works, but...
  - optimise by checking previous value; don't fire signal if the value
    hasn't really changed.  will this slow down the daemon too much?
  - file system monitoring.  if a backend file changes, the daemon needs to
    re-read the file, but must save the old property tree so it can figure out
    what has changed so it can send appropriate PropertyChanged signals
    + what happens if a channel isn't loaded into memory and its backing file
      changes?  load it and send PropertyChanged for all properties?  that
      could be very bad.
* libxfce4mcs-client dummy implementation that forwards to libxfconf (?)
* maybe validate channel/prop names in libxfconf too to generate an error
  without a roundtrip to the server (?)

-> for future:

* transaction support
* network support - allow remote displays and such
* do some caching in the client library?  seems wasteful of memory, but it
  could allow the daemon to ditch its copy of a channel's properties more
  often.
