Introduce explicit way of halting callback chains by throwing :abort. Deprecate current implicit behavior of halting callback chains by returning `false` in apps ported to Rails 5.0. Completely remove that behavior in brand new Rails 5.0 apps.

Stems from discussion with @dhh at https://groups.google.com/forum/#!topic/rubyonrails-core/mhD4T90g0G4

@dhh – I created this work-in-progress PR to continue the conversation with some code.
Could you tell me if this is what you intended by using `:throw` with a symbol?

I have quite clear how to add the `throw` to the code in ActiveJob, but not as
much where to `catch` it in ActiveSupport. For now I have this code:

```ruby
def run_callbacks(kind, &block)
  catch(:abort_job)  do
    send "run_#{kind}_callbacks", &block
  end
end
```

but maybe the `catch` is better located somewhere at a deeper level of the callback stack.

@dhh Thoughts? Once I have a clearer idea on how to proceed, I can complete
this PR with tests, documentations, etc. Thanks!
Whenever a callback returns `false`, the user gets a deprecation warning.

In the rest of the code, I have changed all internal uses of `return false` to `throw(:abort)`, so users will not get deprecation warnings for internal code.

However, in this specific case, there is no need to do that because the value returned by this method (whether `nil` or `false`) is not used anywhere. The method above is [invoked here](https://github.com/rails/rails/blob/8b07f18599854475a69c1447642dd3d80bea8df9/activemodel/lib/active_model/validations.rb#L394) inside `_run_validate_callbacks`:

```ruby
    def run_validations! #:nodoc:
      _run_validate_callbacks
      errors.empty?
    end
```

The only important thing is whether `errors` is empty or not.
Since it's not meaningful whether the callback returns `false` or `not`, I added the `|| nil`, so the user will not get a useless deprecation warning. 

---

The following is to show you how you would get deprecation warning when running tests if you didn't add the `|| nil`:

```bash
DEPRECATION WARNING: Returning `false` in a callback will not implicitly halt a callback chain in the next release of Rails. To explicitly halt a callback chain, please use `throw :abort` instead. (called from block in <class:TestAutosaveAssociationValidationsOnABelongsToAssociation> at test/cases/autosave_association_test.rb:1502)
/Users/claudiob/code/rails/activesupport/lib/active_support/callbacks.rb:617:in `display_deprecation_warning_for_false_terminator'
  /Users/claudiob/code/rails/activesupport/lib/active_support/callbacks.rb:607:in `block (2 levels) in default_terminator'
  /Users/claudiob/code/rails/activesupport/lib/active_support/callbacks.rb:604:in `catch'
  /Users/claudiob/code/rails/activesupport/lib/active_support/callbacks.rb:604:in `block in default_terminator'
  /Users/claudiob/code/rails/activesupport/lib/active_support/callbacks.rb:166:in `call'
  /Users/claudiob/code/rails/activesupport/lib/active_support/callbacks.rb:166:in `block in halting'
  /Users/claudiob/code/rails/activesupport/lib/active_support/callbacks.rb:506:in `call'
  /Users/claudiob/code/rails/activesupport/lib/active_support/callbacks.rb:506:in `block in call'
  /Users/claudiob/code/rails/activesupport/lib/active_support/callbacks.rb:506:in `each'
  /Users/claudiob/code/rails/activesupport/lib/active_support/callbacks.rb:506:in `call'
  /Users/claudiob/code/rails/activesupport/lib/active_support/callbacks.rb:93:in `_run_callbacks'
  /Users/claudiob/code/rails/activesupport/lib/active_support/callbacks.rb:808:in `_run_validate_callbacks'
  /Users/claudiob/code/rails/activemodel/lib/active_model/validations.rb:397:in `run_validations!'
  /Users/claudiob/code/rails/activemodel/lib/active_model/validations/callbacks.rb:112:in `block in run_validations!'
  /Users/claudiob/code/rails/activesupport/lib/active_support/callbacks.rb:89:in `call'
  /Users/claudiob/code/rails/activesupport/lib/active_support/callbacks.rb:89:in `_run_callbacks'
  /Users/claudiob/code/rails/activesupport/lib/active_support/callbacks.rb:808:in `_run_validation_callbacks'
  /Users/claudiob/code/rails/activemodel/lib/active_model/validations/callbacks.rb:112:in `run_validations!'
  /Users/claudiob/code/rails/activemodel/lib/active_model/validations.rb:334:in `valid?'
  /Users/claudiob/code/rails/activerecord/lib/active_record/validations.rb:58:in `valid?'
  test/cases/autosave_association_test.rb:1502:in `block in <class:TestAutosaveAssociationValidationsOnABelongsToAssociation>'
```