Make all astropy code compatible with Python 2 and 3 without requiring 2to3

This is the same as #1219 but that has been merged with a smaller scope.  This should stay open until it is done.  By my reckoning these are the outstanding packages:

- [x] astropy.modeling
- [ ] astropy.sphinx
- [x] astropy.vo
- [x] astropy.io.misc
- [x] astropy.io.tests
- [x] astropy.modeling.tests
- [ ] astropy.sphinx.ext
- [x] astropy.vo.client
- [x] astropy.vo.validator
- [x] astropy.io.misc.tests
- [x] astropy.modeling.tests.data
- [ ] astropy.sphinx.ext.tests
- [x] astropy.vo.client.tests
- [x] astropy.vo.validator.tests

I generated this list using the `package_info` variable from `setup.py` as follows.  Not sure if this complete or correct, but it seems mostly there:
```
skip_2to3 = [re.sub(r'/', '.', x) for x in package_info['skip_2to3']
packages = package_info['packages']
p2to3 = [p for p in packages if not any(p.startswith(s) for s in skip_2to3)]
for p in p2to3:
    print '- [ ]', p
```

Optimistically milestoning for 0.4.  This would be good!