Fixed ASCII-only String#encode! with options

Fixed ASCII-only String#encode! when called with options
but no to/from encodings. When Encoding.default_internal
is nil the additional test makes sure that #ascii_compatible?
is not called on nil and also skips the force_encoding call.