Exec: ExecuteSlices takes tickCount duration parameter

Previously, ExecuteSlices would run a specified number threaded snippet segments and return.
If there was not much to execute in the current clump it exited quickly which caused a lot of overhead.
Now it can stay in the inner loop longer. 50x performance improvement for JavaScript.
Array Asserts: Converted inlace array asserts to print/stop() pattern

Previously the array functions asserts quit esh completely and printed out a line number (which changed often).
Asserts should not be used to make assertions about user programs. Stop() is a cleaner exit.
Messages still should be routed to the error queue to the context.  However, queues don't exist yet.
so printf() is used for now.
Asserts: using Stop instead of Assert for illegal user code.