myrialang: use cardinality when deciding which child to broadcast
TDD optimizer cardinality tests

Tests to see if the optimizer knows the cardinality of the objects.
TDD tests: simpler and clearer
tests: use assertIsInstance instead of assertTrue(isinstance

Hey, that assert function already exists. How nice.
union_find: use better asserts in test
optimizer_tests: remove unused import
test_union_find: fix warnings
optimizer_tests: use standard way to count number of elements in counter

see: https://docs.python.org/2/library/collections.html#counter-objects under
'Common patterns for working with Counter objects'
fakedb: answer num_tuples accurately when possible
optimizer_tests: test that the catalog has the right cardinality
Scan: add a cardinality argument

Catalog may fill it in upon creation.
myrial.interpreter: pass cardinality into the Scan

Fixes the cardinality tests
platform_tests: use Counter, not list, for the tuples
Merge pull request #303 from uwescience/cardinality-planner

myrialang: use cardinality when deciding which child to broadcast
raco: fix string utility functions with containers

We want to stringify operators in a way that recursively stringifies
containers. I had previously hacked this up to work for non-nested
lists, but of course, NaryJoin uses nested lists. Fix this by rewriting
real_str to work with arbitrary containers.
utility.real_str: test, and requisite bug fixes
test_utility: remove erroneous comment
test_utility: remove duplicate test
Merge pull request #304 from uwescience/redo-stringify

raco: fix string utility functions with containers
Merge branch 'master' into whitaker_nary_uda