Mojo::Cache gets stuck in a loop when max_keys is <= 0

- Setting max_keys <= 0 currently causes Mojo::Cache to get stuck in a
  loop when set() is called.
- Setting max_keys to 0 is a quick means of turning off caching (ie, if
  we want to recompile the templates every time during testing)
- Setting max_keys < 0 doesn't make much sense, but it we still
  shouldn't get stuck in a loop.