Begin bringing this module up to my current standards for node modules.

- main is now index.js
- each submodule in lib now exports one item
- fixed some small style things
- added code coverage tools to the test harness

Pre-bumped the version number because this will be an API-breaking release.

Next up: removing logging.
The worker now emits 'log' events instead of attempting to log all by itself.
Documentation to follow in the readme once I'm happy with the format of the
objects passed to the event.
Slight test reorganization, prepping for some worker & runner tests.
The client now emits errors on interesting events like connect, close, and error.
You are expected to listen for those events and act upon them. In particular, the
API has changed to that connect no longer takes a callback.

worker.start() no longer takes a flag to ignore the default tube. Instead you
can set 'ignoreDefault' in the options hash you pass to the worker constructor.

The worker no longer attempts to ignore the default tube if it's not watching
anything else.

Started implementing tests for the worker. This brings coverage up over
50% (which is pathetic, but it's a start) so I added coverage checking
to the test targets run by Travis CI.
More logger expungement.

I just invented that word.
Some style tightening.

More worker tests.
A little whitespace now & then / is relished by the wisest of men.
The worker is now restartable.

That is, you can call stop() and then start() on it without needing to
create a new one. You'll still need to re-watch any tubes you were
watching. (Going to rework that, at which point this client will be far
divorced from the original project.)

Implemented more worker tests. Client test coverage is now at 91% and
worker coverage at 92%.
Added two more worker job-handling tests.

The bad json test exposed a bug, which I fixed: we would cheerfully go
on to try to use a bad job payload. Yay integration tests.
Travis test timings are much slower than on my MacBook.

I read that virtualization means I'm running these tests on the
equivalent of a RaspberryPI, which is awesome. Anyway, try to work
around the timing differences while maintaining the usefulness of the
tests.
The worker emits many more events to make processing jobs a little nicer.

Well, as scientifically measured, about a million times nicer.

Here is a list of events emitted and some notes on what they mean. This
will turn into documentation eventually:

error: payload is error; cannot be recovered from
close: worker got a close event from its client; no payload

warning: payload is object with error information; execution continues
info: the equivalent of info-level logging; payload is object with
action info

started: worker has started processing jobs; no payload
stopped: worker has stopped processing jobs; no payload

job.reserved: payload is jobid
job.handled: payload is object with job info
job.deleted: payload is jobid
job.destroyed: payload is jobid
job.buried: payload is jobid

Rewrote the tests to use the events, which should make them less
timing-dependent. I might still not be allowing enough slop for the
slowness of TravisCI.
Bump up the timeout on two worker tests.

These are consistently passing for me, so perhaps it's just that the
tests are running on a RaspberryPI hosted at Amazon.
Implemented the kick-job <id> command, with unit test.
Don't test kick-job if the version of beanstalkd doesn't support it.

kick-job was introduced in 1.8 in Nov 2012. Apparently the package
Travis installs is older than that.

Used semver to compare versions because I am very lazy.
Resequence some tests.
You can now specify a delay of 0 when releasing jobs.

And use that in the worker release test, to completely removing timing
issues from the test. This should fix Travis. Famous last words.
Added basic tests for the runner.

Code coverage is now up over 90%, so I set the travis-cov threshold to
90. Next up: documentation.
Mark version as 1.0.0-beta1 so I can push a beta to npm later.
Brought documentation up to date.

Documented the new client.connect() behavior.
Documented the new worker events. Improved worker documentation overall.
Brought examples up to date.

They all run.