Monkey patch 'django.utils.translation'

Modify Django's translation library, such that the gettext family of
functions return an empty string when attempting to translate a
falsey value. This overrides the default behavior [0]:
> It is convention with GNU gettext to include meta-data as the
> translation for the empty string.

This patch provides a holistic solution to replace the current piecemeal
approach [1][2].

Affected Methods:
    - gettext
    - gettext_lazy
    - pgettext
    - pgettext_lazy
    - ugettext
    - ugettext_lazy

[0] https://docs.python.org/2.7/library/gettext.html#the-gnutranslations-class
[1] bad803e451ce63b4693ecf52b66cedfce5b43160
[2] https://github.com/edx/edx-platform/pull/4653
I renamed `self.tearDown` to `self.cleanup`, which is added with `self.addCleanup(self.cleanup)`.

This allows the lib to guarantee it will be restored, since `tearDown` _isn't_ guaranteed to run (thanks for the heads up; this subtlety was new to me). The wrapper function is needed because _after_ unpatching, we need to conditionally repatch _iff_ the module was patched when the test began.