Adds test case for #289
Adds better tests for #289
Adds support for primitive boxing. Fixes #289
Using metatables to preserve primitive state from mutation
Adds primitive boxing for Object function
Implements review suggestions
Merge #431 r=@johnnyman727: Jon issue 289