Add new integration testing framework.

[finishes #44818075]

* use a better IO#expect equivalent that tracks full output
* have travis run integration specs with 1.8.7 and 1.9.3 vmc
* don't run integration specs with ruby 1.8.x