Stress that all array creation C functions steals a reference to descr.
ENH: Add a NpyAuxData c_metadata to PyArray_Descr

The purpose of this is to allow dtypes with metadata to
have faster C-level performance. With this, datetime64
metadata lookup can become a single C pointer dereference,
compared to a C-string to Python-string conversion +
a Python dict lookup as it is presently.
ENH: Change datetime64 to use c_metadata instead of metadata
BUG: Output the datetime64 dtype to the pickle format from 1.6
ENH: Change NPY_AUXDATA_FREE macro based on PR feedback
DOC: Improve documentation comment from PR 274 comment
STY: Elaborate comment about cloning dtype's c_metadata
BUG: Fix datetime 1.6 pickle compatibility test for Python 3.

In Python 3 the pickle.loads function expects a bytes argument, so
convert the test strings.
Merge branch 'pull-274'

* pull-274:
  BUG: Fix datetime 1.6 pickle compatibility test for Python 3.
  STY: Elaborate comment about cloning dtype's c_metadata
  DOC: Improve documentation comment from PR 274 comment
  ENH: Change NPY_AUXDATA_FREE macro based on PR feedback
  BUG: Output the datetime64 dtype to the pickle format from 1.6
  ENH: Change datetime64 to use c_metadata instead of metadata
  ENH: Add a NpyAuxData c_metadata to PyArray_Descr
BUG: Fix format/variable incompatibility.

This shows up in python 2.4 where Py_ssize_t is an int.
Also remove unused variable.
DOC: verbosity -> verbose in testing guidelines
Merge pull request #277 from dlaxalde/doc/test-verbose

DOC: verbosity -> verbose in testing guidelines
BUG: fix running tests with coverage=True.

The --cover-inclusive argument means that coverage.py tries to include every
single .py file in the source tree in the coverage report. This leads to test
errors, because it tries to import files like setupscons.py (which will of
course directly fail for anyone not having numscons installed).
BUG: maskna: PEP3118 code wasn't raising an error on NA-masked arrays
Merge pull request #276 from charris/fix-format-variable-mismatch

BUG: Fix format/variable incompatibility.
NEP: Add some details about how existing C-API access interacts with NA
Consolidate all array writeability checking in new PyArray_RequireWriteable

This is mostly a code cleanup, but it does have a user-visible effect
in that attempting to write to a unwriteable array now consistently
raises ValueError. (It used to randomly raise either ValueError or
RuntimeError.)

Passes numpy.test("full").
Funnel all assignments to PyArrayObject->base through a single point

This patch removes all direct assignments of non-NULL values to the
'base' field on PyArrayObjects. A new utility function was created to
set up UPDATEIFCOPY arrays, and all assignments to 'base' were
adjusted to use either PyArray_SetBaseObject or the new
PyArray_SetUpdateIfCopyBase.

One advantage of this is that it produces more consistent error
handling. This error handling revealed a bug in the nditer code,
which this patch does *not* yet fix.

The bug is that npyiter_new_temp_array sometimes (when dealing with
reversed axes) creates an array and then returns a view onto it. But,
npyiter_allocate_arrays assumes that the array returned by
npyiter_new_temp_array can have UPDATEIFCOPY set, which requires
reassigning its 'base' field. Previously, this meant that the
temporary array leaked. Now, it produces a ValueError.

This code path doesn't seem to actually be hit very often; only one of
the nditer tests fails because of the change. See
   numpy/core/tests/test_nditer.py:test_iter_array_cast_buggy
Add a test for ndarray.diagonal()

All 'expected' values were computed using numpy 1.5.1, so we can be
pretty sure that the recent rewrite didn't change any results.
Transition scheme for allowing PyArray_Diagonal to return a view

PyArray_Diagonal is changed to return a copy of the diagonal (as in
numpy 1.6 and earlier), but with a new (hidden) WARN_ON_WRITE flag
set. Writes to this array (or views thereof) will continue to work as
normal, but the first write will trigger a DeprecationWarning.

We also issue this warning if someone extracts a non-numpy writeable
view of the array (e.g., by accessing the Python-level .data
attribute). There are likely still places where the data buffer is
exposed that I've missed -- review welcome!

New known-fail test: eye() for maskna arrays was only implemented by
exploiting ndarray.diagonal's view-ness, so it is now unimplemented
again, and the corresponding test is marked known-fail.