add federal agency fields and validation

WIP
As a `boolean`, this seems like it should be named differently?  Something like `tos_agreed` or whatever.  Since, in the future, we may require all apps to agree to TOS, seems reasonable to make this field name general and not federal.