Further clean-up of ActiveSupport::Callbacks

In #11195 I noticed a trailing comma in the docs, but I decided to
further clean it up.

What I have done:

* Clean up the trailing comma in the docs and some extra whitespace
  lines.
* Used `Array#extract` options to factor the repetitive pattern of
  `args.last.is_a(Hash) ? ...`
* Renamed the local var `config` to `options` in `define_callbacks`, as
  `options` seems to be the de facto name for the options objects.
* Renamed the local var `l` to `line` in `define_callback` (maybe it
  meant `lambda` in the context) as single `l` may look like `1` in some
  fonts.