Refactor handling of action normalization

Reference:
Bloody mess internals
http://gusiev.com/slides/rails_contribution/static/#40
Excluding action_view/vendor in API [ci skip]
Removed excluding vendor from API doc [ci skip]

These folder not exists in system
Merge pull request #11611 from arunagw/api-generation-av

Excluding action_view/vendor in API[ci skip]
JSON serializer options now accept optional names.

'only' and 'methods' options for the JSON serializer now accept hashes
in which the key is the attribute to store and the value is the name in
which the result will be stored. 'include' now accepts a root option
that will be the name the association will be stored under.

    person = Person.create(name: "Bob")
    person.to_json(only: {name: :real_name})
      => "{\"real_name\":\"Bob\"}"

    person.to_json(methods: {full_name: :new_name})
      => "{\"new_name\":\"Bob McKenzie\"}"

    person.to_json(only :name, include: {children: {root: :kids, only:
      :name}})
      => "{\"name\":\"Bob\",\"kids\":[{\"name\":\"Jimmy\"}]"