quick sketch of composable continuation implementation

I've been told by knowledgeable people that it is impossible to
implement composable continuations (AKA delimited continuations AKA
shift/reset) in terms of call-with-current-continuation.  Since I
don't yet understand why that is, I figured it would help my
understanding to attempt it and see how it fails.
simplify shift/reset API and add test (currently failing)
fix handling of multiple shifts delimited by a single reset
revert unintended change to jnienv.cpp