Make string_list static

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Set up sphinx documentation

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Use version of module from build folder to generate docs

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Rename class from Ason to ason

Calling it Ason in its name field and ason in the module just confused the doc
tools.

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Add is_union and is_complement

We have no other way to detect these types.

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Add serialize method

So far only the __repr__ method would give us the actual ASON text, and that
was mangled slightly.

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Make str() only work for string ASON values

The duck-typing is nice and all, but it's more important that the API be
consistent.

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Fix operator inversion logic error in Ason_compare

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Remove string and int comparisons from Ason_compare

We need these operators to match strictly to ason_check_represented in more
urgently than we need them to have fancy duck typing.

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Fill out documentation

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Explain type promotion in docs

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Make iterating non-collection return the object whole

This makes a LOT more sense for unions, so iterating a union of only one object
(where the union operators have all been reduced away) will actually return the
one object.

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Document castability and iterability

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Document constants

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Increase documentation verbosity

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>