Copied refactored plugin infrastructure from branch and merged changeset r2586:2589 from branch into the trunk. #799