Use nulls instead of base Component for empty cells in Table

component.constructor.name didn't work on IE, so now instead of using base
Components to fill empty cells in Tables null is used. Null checks have been
added to the appropriate spots in Table.

In addition, getBoundingClientRect() wasn't returning the right result on
Firefox (it returned the correct upper-left corner, but the returned rectangle
had 0 width and 0 height), so the tick label cutoff calculation in Axis has
been changed to use availableWidth and availableHeight.

Also fixed tests that broke because of the change to nulls, and a few off-by-1
test errors on FF.