Initial cut on handling table references.

Still work in progress.
Add table.hpp to the makefile.
Correctly calculate SUBTOTAL for the test case.

Still far from being complete.
Check the result of SUBTOTAL in this test case.
Actually, table_handler is not needed just to parse table references.

It's needed when we need to resolve table references.
Parsing a table reference should be done purely based on syntax.

IOW, it should not depend on whether or not the document model has
a string identifier for the table name, column name etc.  This is to
allow tokenization of formula expressions before registering tables
to the document.
Support resolving Table[Column] syntax.
A table reference may specify more than one area types.

Let's prepare the types for this first.
Parse area specifier in table reference.
Add more test cases.
It's actually '#Headers' plural not '#Header' singular.
Table reference without a column name is valid.

As long as at least one area specifier is given.
Prepare for supporting column range in table references.

A reference such as 'Table[[#Headers],[Col1]:[Col2]]' is valid.
Parse column range in table reference correctly.
Update the table_handler interface to support column range and areas.

The implementation has yet to be updated to properly support column
ranges and area specifiers.
Add COUNTA built-in function.
More check for COUNTA.
Add 3 more test cases.
Properly print table references.
Correctly determine table reference range for area specifier only cases.