First attempt at optimizing the table UI

 * Adding 'dirty' internal flags to help determine when to perform certain actions
 * Using chaining where possible, returning the chain rather than separate statements
 * Adding random data generator to the playground, to test large data-sets