Include decoded params in form on validation failure

This is a copy of #9 with only relevant commits.

Currently when a form fails validation using `variable_decode=True`, `form.data` contains the request params rather than the variable decoded version:
eg. `{ "tags-1": 'apple", "tags-2": "banana" }` instead of `{ "tags" : ['apple', 'banana'] }`

This PR makes the form data consistent with that of a successful validation.