Partially fixes rschmukler/agenda#100

Three tests are failing with this change.

Two are integration tests.  I believe this is because the
.every('one day') call schedules it for the next day rather than
running it once today and then scheduling it.  I'm pretty sure I
can get this working by toying how the job.proto.scheduleNextRunAt
sets the date when no lastRunAt is set.

The other test that is failing (that I'm personally worried about)
is the lock job tests.  The test wants the job.lockedAt to be set
to null, and it is currently being set to undefined.
Fixed the lock test issues.

The locks not working was because of the change to .every() not
running the job on initial setup.

That being said, there seems to be an issue with the current logic
in relation with when to initially run the job.

In my mind, if using a cron string, the job should run at the first
time that is within the boundry set.

If it's a human interval it needs to run when initially run, rather
than the time now + the interval set.
Make human intervals run immediately when new.

This way cron jobs start when they are supposed to, and you don't
have to wait for the interval to pass when using a human interval.
Merge pull request #114 from droppedoncaprica/master

Fix .every() running when using cron strings.
Merge remote-tracking branch 'upstream/master'