Updated dashboard framework to 1.) use the D3 reusable chart conventions (with getter setter functions), and 2.) only call the setters when properties actually change