ENH: Add `raw`, `reduced`, `complete` modes to qr factorization.

If K = min(M, N) where the matrix to be factored has dimensions MxN,
then

'reduced'  : returns q, r with dimensions (M, K), (K, N) (default)
'complete' : returns q, r with dimensions (M, M), (M, N)
'r'        : returns r only with dimensions (K, N)
'raw'      : returns h, tau with dimensions (N, M), (K,)
'full'     : alias of 'reduced', deprecated
'economic' : returns h from 'raw', deprecated.

The options 'reduced', 'complete, and 'raw' are new. The default is
'reduced' and to maintain backward compatibility with earlier versions
of numpy both it and the old default 'full' can be omitted. Note that
array `h` returned in 'raw' mode is transposed for calling Fortran. Both
the 'full' and 'economic' modes are deprecated. For backwards
compatibility the modes 'full', 'economic' may be passed using only the
first letter but all others must be spelled out.
TST: Add more tests for qr factorization.

The new tests cover the new modes 'complete' and 'raw'. The testing of
the 'reduced', aka 'full' mode is improved and tests are added for the
deprecation of the 'full' and 'economic' modes. A new file
`numpy/linalg/tests/test_deprecations.py` was added for the deprecation
tests.
DOC: Document the new qr modes in the 1.8 release notes.
Merge pull request #2965 from charris/fix-qr-mode

Fix qr mode