Feature/job repeat at

This feature implements a property called repeatAt(). 

The reason for repeatAt is that I want the nextRunAt time to be computed based off a set time within the day. 

repeatEvery is quite similar however the nextRunAt time for repeatEvery is calculated on an interval basis and is calculated off the lastRun time.

This is a problem because if I want a job to run at 10:30pm and repeat every 24 hours and the server goes down at 10:20, and comes back online at 10:40pm my job will now repeat every 24 hours at 10:40pm.