Don't allow function declarations inside statements in strict mode
Clean up some edge case typos in DynArray defineOwnProperty method
Spec tests expect index-based String properties to be enumerable
DefineProperties should only look at ownEnumerablePropertynames (15.2.3.7)
Correct some long/double conversions and modulo for compiled code

This pulls logic out of BasicInterpretingVisitor and into some helper
methods that the interpreted and compiled code paths can use.
Regexp constructed with an empty string use the pattern "(?:)"

15.10.4.1 - If P is the empty String, this specification can be met by
letting S be "(?:)".
Bump joni incremental to fix a few more regexp specs
Fix several bitshift(<<, >>, and >>>) specs

We weren't adhering to the spec strictly enough to cover all bitshift
edge cases. This only fixes interpreted mode - fixing this for
compiled will take a bit more thought.
Merge branch 'failure_is_not_an_option' of https://github.com/bbrowning/dynjs into bbrowning-failure_is_not_an_option