Reduce the memory consumed by PropertyDescriptor instances

Maintain the flags (writable, configurable, etc) as bytes instead
of Objects and use constants instead of Strings for identifing
property names.

Because of the sheer amount of PropertyDescriptor instances that get
created and destroyed this actually results in a non-trivial amount of
memory and CPU savings in simple tests.
Avoid duplicating PropertyDescriptor instances where possible

This commit drastically cuts down on the number of PropertyDescriptor
instances created - about 1/4th as many in my testing. This also seems
to save around 25% overall heap usage on a couple of dynjs-spec tests
sampled.
No need to calculate the global object every time we ask for it
Don't use anonymous classes to initialize PropertyDescriptor objects

This cuts down on the # of classes loaded by DynJS as well as
inreasing performance of code paths that used the anonymous classes.
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.
Merge branch 'pr/63'
Fixed unchecked warnings.
Removed unused class.
Merge branch 'pr/62'

closes #62
Made properties created by __define*__ enumerable.
Adjust scope and verbosity for javadoc task
More javadoc fixes
Add disabled spec for http://jira.codehaus.org/browse/DYNJS-120
Properly convert numbers like 1.2345E-4 to Strings

We had an extra "." in the converted number.
Fix loss of precision in Types.toUint16
Fix byte ordering issue in URLCodec#decode
JSON.parse should throw a SyntaxError on unexpected tokens
JSON.stringify was calculating the min # of spaces incorrectly