Implement FFI::AbstractMemory#slice to fix #608
Add FFI::Pointer.size to fix #607
Propagate typeSize from wrapped pointer
Implement 3-arg variants of Pointer#write_array_of_type() and Pointer#read_array_of_type().  Fixes ffi/ffi#258
Yield specifically nothing in #times when block has no args.
Improvement to no-arg #times, to avoid arg processing if unneeded.
Avoid allocating boolean[] escaped if block is not captured.
Move Ruby 1.9 languages/core tests up in sequence.
Avoid 1.9 block args processing if no args and no arity check.
Alternative way of tracking block escaping through clones.

The previous method would fail to keep a cloned block associated
with its original block consistently, since the boolean[] created
during cloning would not continue to be shared between the parent
and child (cloned) scopes. This led to errors when non-local flow
control like 'break' checked wither the block was escaped or not.

This commit changes the tracking of escape to be via an
intermediate "escapeBlock", which defaults to "this" but which can
point at an original parent scope when blocks are cloned, ensuring
that escape propagates to all clones without any additional
allocation overhead.

This fixes Travis build from the original escaping change.
Defer cloning Binding constructs until actually needed.
Move RuntimeHelpers to org.jruby.runtime.Helpers.
Return memoized nullPointer from Pointer.getNull() instead of looking up Pointer::NULL each time.
Fix issue #612 - restrict struct parameters to those of the appropriate type.
Added optional length to caller() method and support for Range argument
Minor whitespace fixes
Fixed off-by-one error and handled malformed arguments
Tweaks to improved 2.0 caller/backtrace logic.

* Reuse level/length logic across methods
* Reuse gathering logic across methods
* Handle special cases (length = 0, size < 0) properly
* Other tweaks to get 2.0 test_backtrace 100%
* Style fixes