Better cache_on_save cache write

- don't use @cached_as(), which means no lambda signature to extra
  and no unnecessary redis GET request
- use .order_by() to mimic QuerySet.get() behaviour

Should help with #45