Fixed #12982 -- Added a ``get_or_set`` method to the BaseCache backend.

https://code.djangoproject.com/ticket/12982
@manfre - can you elaborate if your concerns about a race condition are still valid?