Use (.) and id from Base in Control.Applicative

Control.Applicative previously imported `(.)` and `id` from `Control.Arrow`,
but then only applied them to functions.

Reviewed By: ekmett, hvr

Differential Revision: https://phabricator.haskell.org/D462
Type-checker plugins as a single patch.
Merge branch 'wip/tc-plugins' into merge-plugins

The temporary branch `merge-plugins` squashed all changes on ths branch
in a single commit.  It also removed some accidental changes.
This "merge" simply declares that all the content of `wip/tc-plugins`
is already present (i.e. I am using merge startegy `ours`).