Use io.open in test_args

This lets it work even in non-Unicode environments
Fix sympy.physics.vector pretty tests in non-Unicode environments

The tests needed to be organized like the normal pretty printing tests to
explicitly test ASCII and Unicode output, regardless of the environment.

Also fix the printing code for dyadic to properly print ASCII strings when
use_unicode is False.

You can test an ASCII-only environment in Unix by setting LANG=C when testing,
like

LANG=C bin/test print
Fix IPython printing tests

They were not testing all order possibilities of a dictionary, and a test was
assuming that the output would be Unicode, when it really depended on the
encoding of the environment.
Try to reuse printers when possible

This should hopefully make things more amenable to subclassing (although the
whole design here is not ideal).
Make printing tests pass in a very narrow terminal

I had to punt on the IPython printing tests because I don't know how to make
IPython ignore the terminal width. I also don't know how to test this other
than by making a terminal with a very small window.  Assumedly one could test
it by setting some environment variables, but I'm not sure what those would be
(setting COLUMNS did not work).
Missing import in Python 3
Fix vector printing tests in ASCII

I actually didn't fix them, but the tests pass. I had to punt on this one,
because the printer uses some awful hacks, and I don't really know how it is
supposed to work. So now vector code will raise NotImplementedError when ASCII
pretty printed.

Also clean up a bit of bad code that was reassigning self and made it slightly
less confusing.
Test printing in an ASCII-only environment in Travis
Forgot test_ in test function name
refactor Fake in dyadic
Merge pull request #66 from smichr/dy

refactor Fake in dyadic
Merge pull request #8364 from asmeurer/vpretty

Vpretty