increased verbosity in table.write/table.read errors (fixes issue #590)
This is a rebase / redo based on the IO refactor.  Haven't yet tested
whether _readers and _writers are the right variables; travis will
tell...
Address problems with constraints reported in #1060 and #1064
Adds some tests that caught the bug in #590 and fixed said bug.  Factored out some common functionality into a _get_valid_format internal function, and did a bit of pep-8 cleanup while I was in there.
Merge pull request #1096 from mdboom/misc/ply-unicode-file-patch

PLY parsers don't load on Python 3 when the source file contains Unicode and the locale is ascii
Fix formatting issue of docstring
Merge branch 'verbose_tablewrite_exception'
Fix failure when creating votables

The following code
```
from astropy.io.votable.tree import VOTableFile, Resource, Table, Field
votable = VOTableFile()

resource = Resource()
votable.resources.append(resource)

table = Table(votable)
resource.tables.append(table)
table.fields.extend([Field(votable, name='XXX', datatype="float", unit = "mag")])
```

fails with

```
ERROR: KeyError: 'unit_format' [astropy.io.votable.tree]
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-28-1bdee196c715> in <module>()
----> 1 table.fields.extend([Field(votable, name='XXX', datatype="float", unit = "mag")])

/data/guenther/anaconda/lib/python2.7/site-packages/astropy-0.3.dev4321-py2.7-linux-x86_64.egg/astropy/io/votable/tree.pyc in __init__(self, votable, ID, name, datatype, arraysize, ucd, unit, width, precision, utype, ref, type, id, xtype, config, pos, **extra)
   1152         self.arraysize  = arraysize
   1153         self.ucd        = ucd
-> 1154         self.unit       = unit
   1155         self.width      = width
   1156         self.precision  = precision

/data/guenther/anaconda/lib/python2.7/site-packages/astropy-0.3.dev4321-py2.7-linux-x86_64.egg/astropy/io/votable/tree.pyc in unit(self, unit)
   1323                           self._config, self._pos)
   1324
-> 1325         format = _get_unit_format(self._config)
   1326         if format != default_format:
   1327             unit_obj = u.Unit(

/data/guenther/anaconda/lib/python2.7/site-packages/astropy-0.3.dev4321-py2.7-linux-x86_64.egg/astropy/io/votable/tree.pyc in _get_unit_format(config)
    180     Get the unit format based on the configuration.
    181     """
--> 182     if config['unit_format'] is None:
    183         format = _get_default_unit_format(config)
    184     else:

KeyError: 'unit_format'
```

There is any easy fix for this (and I have implemented it in this pull request); I have also written a unit test.
However, this implementation breaks a different test when reading unrecognized units and I have been unable to figure out why that is.
Adds not one but two additional 'notes' to the pip install instructions including a warning not to use sudo unless you know what you're doing, and a link to instructions for using virtualenv.  Also added --no-deps to the instructions by default, which I think will get fewer people into trouble.
modified as per suggestion in github discussion
Replace link to Stack Overflow answer with a link to the pip documentation--not much better more immediately relevant.
Don't use filecmp to compare these files--it gives different results on Windows due to default newlines being different.  Instead just compare the content.
Merge pull request #1102 from hamogu/votabmakeunits

Fix failure when creating votables
Merge pull request #1101 from mdboom/vo/writeto

astropy.io.votable: no write_to method
Started documenting some details on how I maintain the bug fix branch(es).  Also added some details on how cherry-picking merge commits works, adapted from an e-mail I wrote some months ago.  Still need to describe the steps for preparing a bug fix branch for a release.
Merge pull request #1103 from iguananaut/validator-issues

Fix vo.validator tests on Windows
Mostly finished the dicussion of maintaining bug fix releases, and modified the release procedure to account for them.  There is a mention of 'updating the changelog' that is left hanging, but I will try to address that in #695.
Use repr() to format strings instead of putting literal quotes in the format string.
Adds directions for updating the changelog (and some justification for why it exists and why you should add to it)
Merge pull request #1104 from iguananaut/sphinx-windows-issues

Fix minor issue with build_sphinx on Windows
Fixed bug in WCS error message