Pubstwo 903

Refactored and renamed (from collaborator to contributor) the controller for the Contributors tab. Now uses the pw-data-row-list directive in the markup to decorate each row. 

Things to note are that the Contributor tab is further subdivided into tabs. We retrieve the tabs and corresponding properties to use from a lookup service. Each row can be either a Person or a Corporation and different uneditable fields show once the type and actual person/corporation is chosen.
Interesting documentation. Is there a reason you're doing this double-slashed inside the function instead of:

    /**
    * @param list - Array of objects with each object containing a rank property
    */
    srv.updateRank = function (list) { ... }

?