Add helper functions for client API

The Razor::View module provides Sinatra helper functions to render database
objects as hashes, which can then be returned to the client as JSON.

Each returned hash can be thought of as an extension of a basic 'object' class,
which has the following three fields:

    - 'id': a URL that uniquely identifies the object
    - 'spec': a URL that identifies the type of the object
    - 'name': a human-readable name for the object

Different types of objects may specify other properties by defining additional
key-value pairs.

This extended-map format allows clients to consume the API without knowing a
priori either the types of objects to be listed, or how to build URLs for the
listed objects.
Create CLI client

This is a command-line client for Razor that uses the public API to retrieve
(and eventually control) a Razor server.

Because the client interacts only through the public API, it requires only a
basic Ruby environment and the rest-client gem. This allows the client to be
used remotely as well as locally, and avoids the performance penalty
associated with loading the entire Razor codebase.

The client takes a RESTful navigation approach to object retrieval, where each
command-line argument is interpreted as a further reference to retrieve. For
example, invoking `./bin/razor tags 27` will first load the /api endpoint, then
find the object with an 'id' value 'tags'. For each further argument, it will
attempt to find an object with a matching 'id' (or 'obj_id' in the case of
reference objects) field. When the last document is retrieved, it is formatted
and printed to the terminal.