orlyi: Add command for listing packages to the websocket interface
Merge pull request #105 from cmaloney/oryli_list_packages

orlyi: Add command for listing packages to the websocket interface
base/thrower: Allow hierarchies to be built with DEFINE_ERROR
base/json: Add a simple Read() which reads in a whole json file.
base/json: Eliminate some unnecessary copies (Force move of everything instead)
base/json: Include what was found as well as what is expected.
base/json: Match exactly what is asked for

Before we greedily matched anything which was not whitespace. So we'd read in commas after exact matches, for instance "true,".
base/json: Better error message
base/json: Add converting TJson::TKind to logical strings
base/json: Add missing nothrow
base/json: Escape all the things we're supposed to so web browsers are happier with our json.

NOTE: This doesn't currently read in all the escape sequences. We just print them right.
base/json: Implement our own string reader which does escaped things properly.
base/json: Allow unqoted strings
base/json: Add some utilities for mutating in place
base/json: Include filename when we error inside a file