Add form and make graph dynamic.

The diff will show a lot of code changed, but that's mostly just indentation because I moved
the chart creation into a submit handler for the form. Probably don't have to fully recreate the chart object
for each submit, but this works for now and I think is a decent example.