updates retention stategy to support negative values

Negative values in the retention strategy means that the instance will
continue to remain idle during the already charged billing period.

For instance, if a slave comes online, runs a 5 minute build, and then
terminates after 20 minutes, the instance was shutdown with 35 minutes
still available in the billing period.  If another build were to be
requested 10 minutes later, another hour would be charged.  This strategy
helps keep slaves alive for as long as possible, but terminates them
before they incur additional cost.
Merge pull request #80 from valdisrigdon/neg_retention

updates retention stategy to support negative values