Add Form Contexts

This has been rebased upon develop and should apply cleanly.

There were some problems from merging the two divergent codebases but they have been fixed: https://drone.io/github.com/DOAJ/doaj/121