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.
To leave the original comment I went to the pull-request on github.com and clicked on the "files changed" tab. Then as you mouse over the lines of code you'll see a blue `[+]` icon show up on the left. Click that and you can leave a comment on a specific line. This is how we do code review at work. Discussing the code within the context of the code in question is fantastic.