Fixes virtualenv activation

/esp/dbmail_cron.py was not activating virtualenv, so recently it was
failing to run because could not import new dependencies that weren't
installed globally on the system (specifically, it couldn't import
markdown, which is imported by one of the modules that is imported by
the cache loader). Fixes this error by activating virtualenv in
dbmail_cron.

While doing this, I noticed that we were doing the activation wrong, in
two ways:

- The try/except block was originally designed to make it optional to
  use virtualenv. However, we are always going to be using virtualenv.
  So instead of helping us, the try/except class was masking our own
  bugs. This commit removes the try/except blocks.

- esp.wsgi was not using os.path.realpath(__file__), so it wasn't
  activating the correct file. We didn't notice this because of the
  try/except block, and probably because it doesn't matter for esp.wsgi.
  Fixes this bug.
Fixes bug with virtualenv pre-activation

Travis uses its own virtualenv install, and has the activate script
located differently than us, and activates it before running manage.py.
This causes the check for our activate script to fail.

Fixes this problem by catching IOErrors, and not raising if the
VIRTUAL_ENV environmental variable has been defined, which would
indicate that the virtualenv has already been activated.
Merge pull request #964 from learning-unlimited/virtualenv-activate-fix

Fixes virtualenv activation