Scalarize path expressions

The gist of this change is that:

search('foo.bar', {'foo: {'bar': 'baz'}}) -> 'baz'

Previously search would always return a list of results,
so the above example would return ['baz'] not 'baz'. While
this made it easy to explain (and implement), it never allowed
you to get a single scalar value, and as a result, relied on
implementations to provide an API to verify single result
searches.

There were a number of edge cases that change the semantics of what
searches return now that the results are scalarized, particularly
when combined with wildcards.  See the .json files for specific
cases, but high level, expressions with changed semantics:

* `foo.*.baz[0]` returns the first sublist, not the first element
  of each sublist.
* `foo.*.*` now returns null.

The other major change is that when no matches were found, you'd
get an empty list.  Now you get null (or in python, None).
Update tox for py26 requirements
Merge branch 'scalarize' into develop

* scalarize:
  Update tox for py26 requirements
  Scalarize path expressions
Rename jamespath to jmespath
Merge branch 'proj-rename' into develop

* proj-rename:
  Rename jamespath to jmespath