Adds pathspec classes.

This can be used for recursive without and pluck etc.
Make pluck use pathspecs.
Things are sort of working.
Add a way to print pathspecs.

Also make pathspecs a bit cleaner.
Adds some debug printing.

Turns out it was actually working correctly. I was just doing a wrong
test.
Adds test which use the new pluck syntax.
Adds more tests for pluck.
Merge branch 'next' into jd_patternmatching_pluck
Only construct pathspecs once.
Makes several changes to how tests work.
Catch exceptions from malformed pathspecs.
Don't recurse in sequences of sequences.
Short circuit in contains.
Remove print tabs function.
Revert "Only construct pathspecs once."

This reverts commit 54fe28eb1b7ccae2a1e1b450b11e18ec50c0c66b.

Conflicts:

	src/rdb_protocol/terms/obj_or_seq.cc
Catch an for malformed pathspecs. Add a few tests.
Change how pathspec errors are handled.
Merge branch 'next' into merge_br