* refactors how we handle running the passed in initialization script to make use of IRB sessions
directly instead of reimplementing things ourselves
* simplify how we initialize our IRB config
* insert a shim for capturing exit codes passed via user calls to exit
* make use of user provided exit code unless we're reading stdin in interactive mode
This changes the exit code of the shell
* a 0 return code, or no return code, passed to a call to exit from stdin in non-interactive mode
will now exit cleanly. in prior versions this would have exitted with an error and non-zero exit
code.
* for other combinations of passing in an initilization script or reading from stdin with using the
non-interactive flag, the exit code being 0 or non-0 should now line up with releases prior to
2.4.z, which is a change in behavior compared to 2.4.z.
Signed-off-by: Peter Somogyi <psomogyi@apache.org>