Handle exception message with invalid UTF-8; For rbx

See https://travis-ci.org/mikel/mail/jobs/33707769#L129

```plain
An exception occurred running /home/travis/build/mikel/mail/gemfiles/vendor/bundle/rbx/2.1/gems/rspec-core-3.0.4/exe/rspec:
    invalid byte sequence in UTF-8 (ArgumentError)
Backtrace:
    Rubinius::Splitter.valid_encoding? at kernel/common/splitter.rb:17
    Rubinius::Splitter.split at kernel/common/splitter.rb:22
    String#split at kernel/common/string.rb:515
    RSpec::Core::Notifications::FailedExampleNotification#failure_lines at \
          gemfiles/vendor/bundle/rbx/2.1/gems/rspec-core-3.0.4/lib/rspec/core/notifications.rb:220
```

To reproduce with just the one test

```sh
 rspec spec/rspec/core/formatters/base_text_formatter_spec.rb:108
```
The memoization doesn't seem useful here.  After all, on non-rbx rubies, it'll be `false`, and the memoization won't even do anything in that case (since `||=` will happily reassign to an existing `false` value).

Also, why `defined?(Rubinius) == "constant"`?  Why not just `defined?(Rubinius)`.

Actually, it's possible that someone could define a `Rubinius` class and load it on a non-rbx ruby interpreter, and this method would lie.  Would it be better to use `RUBY_PLATFORM` or `RUBY_ENGINE` instead?