Remove addins - stage 3

This should be the final pull request on the remove-addins feature. Actually, I thought I was continuing to use the same pull request and updating it, but apparently I created two different PR already and this makes the third.

In this request, I've finished all the generation of test cases and done a lot of refactoring. In addition, I fixed a few problems that were in the way of completing this work.

The new interface ICommandDecoratorSource provides a level of indirection between attributes and command decorators. In the earlier implementation, attributes actually were command decorators, but that made it difficult to implement decorators based on a ParameterSet and also required that a given object always provide a decorator, no matter what it's state. Using the new interface, an object can provide zero to many decorators and what is provided may vary depending on the object state.

Command decorators themselves still require some refinement and additions, but that's out of the scope of this change. Once committed, we're done with this branch and all trace of the old Addins design is gone from the framework.