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
@cpennington Test cases reverted to UpperLeadingCamelCase.

As far as the import lines, this was an active decision. While a bit
more verbose, I adopt this style because it `diff`s much more cleanly.
With this approach, adding or removing a single import ends up diffed as
just a simple addition _or_ subtraction, whereas combining statements
forces the entire line (and other imports from the same module) to
appear as both an addition and a subtraction. It's the same idea as
using a new `var` keyword for each declaration in JavaScript.

I've found this style makes code review and maintenence an easier task.

If this is a blocker, let me know.

Otherwise, the remaining feedback has been implemented, rebased,
squashed, and pushed.