Refactored form field addition for further reuse.
Refactored for further reuse.
Created agreement form factory for better reuse.
Removed extra line.
add_page_field belongs to the form class.
Fixed typo.
Store pages and user in the agreement form.
Moved relative date calculation to PTL.common.
Removed unused import.
Track who accepted a legal document and when.

The tracking information will be required at registration time and users
will be prompted again if any of the existing agreements change or new
ones are added.

Fixes bug 2831.