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