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.