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