Fix pypy test failures

This fixes a number of test failures that are unique to PyPy.

Note that I had to do some stuff with `safeeval` 

mrjob isn't relying on `safeeval` to protect from untrusted user input, is it? Because techniques like this are defeatable by malicious users -- see http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html

I got it down to 2 test failures:

```
=========================================================================== short test summary info ============================================================================
FAIL tests/test_emr.py::TestCatFallback::test_ssh_cat
FAIL tests/test_parse.py::FindPythonTracebackTestCase::test_find_python_traceback
SKIP [1] /Users/marca/dev/git-repos/mrjob/.tox/pypy/site-packages/_pytest/unittest.py:113: -v option doesn't work with pypy

Results (156.11s):
   863 passed
   2 failed
      - /Users/marca/dev/git-repos/mrjob/tests/test_emr.py:2918: AssertionError: Lists differ: ['meow'] != ['meow\n']
      - /Users/marca/dev/git-repos/mrjob/tests/test_parse.py:108: AssertionError: 5 != 3
   1 skipped
ERROR: InvocationError: '/Users/marca/dev/git-repos/mrjob/.tox/pypy/bin/py.test'
___________________________________________________________________________________ summary ____________________________________________________________________________________
ERROR:   pypy: commands failed
```