Add support for querying multiple UDF collections at once.

The client must wrap the JSON objects for UDFCs in an ["OR", ...]
combinator, as we can't query for matches on multiple UDFC types for the
same row.

One note, in order to add the tree joins to the query only when necessary, the
"udf:plot" and "udf:tree" SQL are both empty, and depend on "udf".
This introduces some extra whitespace characters in the query, but doesn't hurt
anything.
Merge pull request #50 from maurizi/fixes-foralerts-search

Add support for querying multiple UDF collections at once.
Fix scalar UDF searching.

Fixes #51
Merge pull request #52 from maurizi/scalar-udf-searches

Fix scalar UDF searching.
Add support for Travis CI.
Merge pull request #54 from OpenTreeMap/hmc/travic-ci

Add support for Travis CI
Add support for npm-shrinkwrap

Shrinkwrap locks down the versions of a package's dependencies so that
you can control exactly which versions of each dependency will be used
when your package is installed.

(The `package.json` file is still required if you want to use
`npm install`.)

To install dependencies:

Using a shrinkwrapped package is no different than using any other
package: you can `npm install` it by hand, or add a dependency to your
`package.json` file and `npm install` it.

To add or update a dependency:

- Run `npm install` in the package root to install the current versions
of all dependencies
- Add or update dependencies
- `npm install` each new or updated package individually
- Validate that the package works as expected with the new dependencies
- Run `npm shrinkwrap`, commit the new `npm-shrinkwrap.json`

**Note**: Dependencies must be explicitly named in order to be
installed: running `npm install` with no arguments will merely reproduce
the existing shrinkwrap.
Merge pull request #53 from OpenTreeMap/hmc/shrinkwrap

Add support for npm-shrinkwrap