Add a Products View

Includes updates urls, a new form, template and a class based view.
It needs some CSS love, but otherwise works.
So the decorators don't handle class based views well. When decorating methods, class based views pass themselves as one of the arguments, and have requests as a property. However, the decorators expect a request as the first argument. I tried hacking on the decorators a bit, but part of core django which the decorators rely on had the same expectations. This seemed like the best way to do this.
I put a comment on the class explaining what I did.