Implement CROSS.

Blows up memory like nobody’s business, but the semantics should be right.

And move `WorkflowBuilder.join` to the class, like other similar functions.

Also adds a test and rejiggers the `joinStructure` helper function yet again.
Merge remote-tracking branch 'upstream/master' into cross
Merge remote-tracking branch 'upstream/master' into cross

Conflicts:
	src/main/scala/slamdata/engine/physical/mongodb/workflowbuilder.scala
&&& snuck back in during the git merge.
Merge pull request #270 from sellout/cross

Implement CROSS.
add test data sets, fixes #265
Merge pull request #273 from jdegoes/ready/265

add test data sets, fixes #265
Fix projectIndex.

Fixes #70.

Need to use a map/reduce until Mongo fixes a projection bug.

Also:
• Improve rendering of FoldLeft and MapReduce source
• Change “expr” to “value”. (Map/reduce forces the “value” label on us, so this keeps us consistent.)
Merge pull request #274 from sellout/ready/70-array-elements

Fix projectIndex.
execute JSON-encoded regression tests against multiple backends (Fixes #104)
[minor] Refactoring `join`.

• Remove the custom `mrField` – Changed to `ExprName`, like the rest of the code (now that `ExprName` = “value”).
• Rename a couple functions and one is now a `val`.
Add scripts to help with git workflow.

Two new scripts, `wip` and `ready`. The first just creates a new wip
branch with the given name and also a remote branch. The second is much
more complicated and handles both going from a wip branch to a pull
request (the PR is only created automatically if `hub` is installed) as
well as updating a revised ready branch.
Merge pull request #277 from sellout/ready/git-workflow

Add scripts to help with git workflow.
Merge pull request #276 from sellout/ready/join-refactor

[minor] Refactoring `join`.
awesomer effect isolation; rename new test datasets
Merge pull request #275 from mossprescott/ready/104

execute JSON-encoded regression tests against multiple backends
Nicer rendering for trees

* use unicode box-drawing glyphs
* handle newlines in node labels somewhat intelligently
* one line per node

Example:
```
[error]       │  └─ MapReduceTask
[error]       │     ├─ ReadTask(zips2)
[error]       │     ├─ JavaScript(function () {
[error]       │     │      emit(this._id, {
[error]       │     │        "left": [],
[error]       │     │        "right": [this]
[error]       │     │      });
[error]       │     │    })
```
Merge pull request #282 from mossprescott/ready/better-tree-show

Nicer rendering for trees
update scoverage dependency to latest (0.99.7.1)
run scoverage