PDF Form Generation for Users

@ericisaiah @yez 

This branch has survived for **TOO LONG**. I’ve occasionally merged master into it, but there is still far too much stuff to digest on here.

I would like to merge it pretty soon, but there is enough going on I think we should talk about at least some of it.
To make `.to_json` trivial to write, and make it automatically keep up with any changes made to the attr_accessor.