Use uint32s instead of int32s where practical, and add an API version
request. Also, try to return all devices added, not just the first,
and box device arguments.
Add replies, which use standard X error values, to the two currently-supported
input configuration requests.
Document the D-BUS API we use.
Make sure we free everything when we encounter an error.
Add a _source option to all incoming requests, noting that it came from a
client.
Reject all requests to add a device where an option name contains an
underscore.