Throw custom error when isn't possible to type cast value

Add `on_error` method to define custom error handler

```ruby
FastAttributes.type_cast String do
  from 'nil',    to: 'nil'
	from 'String', to: '%s'
  otherwise 'String(%s)'
	on_error 'TypeError',     act: 'nil'
	on_error 'ArgumentError', act: 'raise "error"'
end
```