This makes tests pass that were failing with null reference errors.
`XClient.require` was passing the callback function to `requireExt`,
which called it with parameters `null, ext` on success. The callback
itself seemed to assume it will get only one parameter, which is either
the extension on an error, hence why it tried to call methods on a
`null`.
- The new signature is:
createClient(options, initCB), where
- options is an optional object that defines different parameters such as
display, etc.
- initCB is an optional callback with the signature: function(err, display)
- The initCB is going to be called with an error ONLY if the connection to the X
server fails. Further errors in the server connection will be 'emitted'.
- Update tests and test-runner.js accordingly.
- Update README.
- Return directly in case of error retrieving the extension.
- QueryVersion should be GetVersion and fix its format.
- Add a test for GetVersion.
- Modify test-runner.js so it uses async library to add dynamically the test
files to be used.
- Add test-runner.js to be able to execute the dpms when these
conditions are complied:
1 - DPMS extension is supported.
2 - DPMS version is 1.1.
3 - DPMS is capable.