Remove unnecessary check in ason_create_object

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

This convenience test macro automatically establishes a test that passes if a
certain ASON value is true.

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Make TEST_ASON_EXPR test for successful parsing

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Ignore trailing space when parsing

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

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Remember to set order for order 3 unions

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
More new value tests

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Break some of ason_reduce_union out into another function

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Complete logic of ason_check_represented_in

No more dead cases. It now, in theory, reduces anything.

Sort of.

We're still cheating on some of the most complicated cases by punting to
intersect like we used to. As the tests find those cases we'll see if we can
make them spin.

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Remove KV pair sorting algorithm

The way we currently construct objects implicitly puts the keys in order, and
objects are immutable so we never damage it. I don't see any of the above
changing soon so just scrap the sorting code.

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