$MPICH -> $MPI, "provides" field

`packages.yml` now supports the "provides" field, which:

 a) Renames the associated environment variable; since mpich provides mpi, we now have ``$MPI`` instead of ``$MPICH``.

 b) Other packages can depend on that name, and so depend on a "generic" package (such as "mpi", "lapack") rather than a specific implementation.

Note that `config.yml` must now contain one and only one package that provides the `mpi` package (before, `mpich` could have been left out of the list and it would have been pulled in automatically, but obviously that no longer works).

Note that this is essentially a stop-gap solution until a proper build stack configuration system is developed.