Performance improvements in TypeProvider, FactoryProvider

Changes:
1. More efficient generation of constructor/method parameter list.
2. Elimination of try-catch blocks - particular improvement in dart2js'ed code.
3. Maintain a static cache of method mirrors. These are still expensive to construct.

Not a huge fan of the static cache, though it's a significant improvement when used in Angular.