Don't use anonymous classes to initialize CodeBlock objects

Similar to the change for PropertyDescriptors, we can keep the number
of classes loaded by DynJS to a minimum by not creating anonymous
classes unnecessarily.
Don't recompile the same Pattern continuously
Make generating stack traces slightly more efficient

These still take forever to generate, but hopefully once all
dynjs-specs are passing there won't be so many generated during test
runs.