API Fixed CartCleanupTask, define time in mins rather than relative

Relative time is prone to errors. Case in point:

With a current date of 2014-05-27 13:05:21

php -r 'var_dump(date("Y-m-d H:m:i",strtotime("-2 hours")));'
string(19) "2014-05-27 11:05:21"

php -r 'var_dump(date("Y-m-d H:m:i",strtotime("-2 hrs")));'
string(19) "2014-05-28 03:05:21"

This would delete ALL of your pending orders because of a typo.

Also fixed the task itself, it plainly wasn't working (undefined $cart etc).
Didn't want to introduce a mocking library into the project, so written
a small fake as a simple subclass in unit tests.
Merge pull request #252 from silverstripe-iterators/pulls/cart-task

API Fixed CartCleanupTask, define time in mins rather than relative