Add Cross-Site Request Forgery Protection

This pull request stores a csrf token in the users session and verifies that token for posted forms.

Create and store a CSRF token in the users session
Verify CSRF tokens submitted by hidden input fields

-Added CSRF tokens as hidden input fields to forms that post data.
-Added verification of CSRF Tokens in form handlers. I wasn't sure of a more elegant way to do this.

Thanks @nathan-lafreniere and @legastero for debug love