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
nit: it would be nice if this explicitly returned something. I'm not sure what the right thing is, but it sort of makes me itch looking at something that's purely side-effectful. Maybe it would be interesting to return is_patched(module, attribute_name) at the end of patching? Morally, that's also what's happening below in unpatch(), so it seems like it maintains a nice symmetry throughout.