Migrated implementation for grouped fields on top of master.

Summary:
This is the change that implements support for grouped fields
in the task detail and task edit interfaces.  This code was
migrated from a previous differential, D5271.

It allows users to define a 'group' attribute on custom
fields, at which point the system will sort and show headers
for those grouped fields in the task editor and task
detail view.

Test Plan:
Define some custom fields with the 'group' attribute set.  The
should appear grouped by the header that you defined.

Reviewers: epriestley

CC: aran, Korvin, chad, hach-que

Maniphest Tasks: T2575

Differential Revision: https://secure.phabricator.com/D5448