Factored out algorithm for adding roles in Agreement#addRole
following manual UI testing of Agreement#addRole

- changing order to be type, party, date (type first)
- role type choices filtered per agreement type
- defaults for start and end date
- changed sort order for other WithInterval subtypes (date desc nullsLast, type, ...)