Properly setup scope when doing uncommon exit and inlined blocks

This code had a hardcoded assumption that there was only one inlined
block, but there can of course be multiple. This code therefore walks up
the call chain to find the parent machine code to it can setup the scope
in the proper place.

This was causing issues where in case of an uncommon exit and multiple
inlined blocks, it would read bogus locals from another call frame.
Fix an inner method Range#can_iterate_from?

Prefer protected to private
--------------------------------------

* This method is just used by `self.each`.

Replace receiver for X19
------------------------

* `first` is gotten the `self.each`

refer
-----

  * https://github.com/rubinius/rubinius/pull/2272#discussion-diff-3778716
  * #2272
Merge pull request #2273 from kachick/fix-range-can_iterate_from

Fix an inner method Range#can_iterate_from?
Fix typo

#2273
Merge pull request #2274 from kachick/fix-range-can_iterate_from2

Fix typo
JitCompiler::generate_function shouldn't receive LLVMState as argument