fixed code comment.
added doc block to deleteUserGroupAssociationForGroupIds(). minor code cleanup - i.e. array_push() to []= conversion.
code cleanup: array_push() to []= conversion
added docblock to method _recursivelySaveGroupTree()
simplified the recursion loop in _recursivelySaveGroupTree()
bad engrish fix: "unassociate" is not a word.
optimized updates to user/group associations for learner groups. refs #3088
nuked hokey user/group association handling methods and dropped in slightly better replacements.
refactored instructor/group association handling methods out of the 'save group' method. added code docs.
added new entry to language file.
added proper docblock to action saveGroupModelTree(). updated user input pre-processing to better handle JSON decoding issues. removed obsolete code docs.
improved method name.
added getter methods for retrieving instructor/instructor-group associations with a group, as well as retrieving these associated entities themselves. added sane methods for updating these associations. general tidying up and additions of code docs.
optimized the updating process of instructor/instructor-group associations with learner groups. refs #3088
added logic to only add an "update group" entry to the audit trail if the db record was actually updated. refs #3088
added query result cleanup.
converted line endings to *nix. converted tabs to blankspaces.
disabled "save all" button during the click event handling/XHR call to prevent double-submissions. refs #3088
Merge branch 'master' into bug3088
Merge pull request #133 from ucsflibtopfstedt/bug3088

performance improvements when saving large learner group structures