APE6 - Data-table Text Interchange Format

APE6 is primarily a specification of a new standard for the interchange of tabular data in a text-only format. The proposed format handles the key issue of serializing column specifications and table metadata by using a JSON-encoded data structure which is included in the file as a series of #-prefixed comment lines. The actual tabular data are stored in a standard comma-separated-values (CSV) format, giving compatibility with a wide variety of non-specialized CSV table readers. Using JSON makes it extremely easy for applications to read both the standardized data format elements (e.g. column name, type, description) as well as complex metadata structures. Support for schemas to describe and validate the metadata is part of the standard along with support for non-ASCII unicode character encoding.

The implementation in astropy.io.ascii is relatively straightforward and will provide a significant benefit of allowing text serialization of most astropy Table objects, persistent storage, and subsequent interchange with other users.
Single blank space, though it is effectively any number of spaces because the fields then have whitespace stripped with `strip()`.  Tabs are not allowed as delimiters.  The reasoning here is just to limit things to the two most common / simple options for maximal compatibility with other readers (which might not be parsing the YAML header).

I added `single` in front of `characters`.  Does that make it a bit more clear?