Add location to module and module type definitions.  Improves #6311.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14428 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
#6311. Changelog.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14429 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Allow 'as' variables to bind labels in pattens.  For example

   fun { { x ; y } as p; q } -> e

is equivalent to

   fun { p = { x ; y } as p; q } -> e