Return results from invalid outcomes

Fixes #168.

``` irb
>> class Example < ActiveInteraction::Base
>>   boolean :b
>>   def execute
>>     errors.add(:b, 'falsey') unless b
>>     :something
>>   end
>> end
=> nil
>> outcome = Example.run(b: false)
=> #<Example:0x007fd16b5f8658 @b=false, @_interaction_errors=#<ActiveInteraction::Errors:0x007fd16b5f8310 @symbolic={}, @base=#<Example:0x007fd16b5f8658 ...>, @messages={:b=>["falsey"]}>, @_interaction_result=:something, @validation_context=nil, @_interaction_valid=false>
>> outcome.invalid?
=> true
>> outcome.result
=> :something
```

Needs review from @AaronLasseigne.

(Like #211, this should be merged into `v2.0.0`.)