ENH: ma.asarray() and ma.asanyarray() will pass through input of the correct type.

If x is of type MaskedArray for ma.asarray(x) or any subtype of
MaskedArray for ma.asanyarray(x), these functions will simply return x.
This makes them consistent with their numpy counterparts.

Closes gh-4043.
BUG: Fixed mask_rowcols().

Previous implementation relied on ma.asarray() to always create
a new object.

See gh-4043.
MAINT (API?): organize npyio.recfromcsv defaults

Organizes the default kwargs in recfromcsv. Changes two undocumented
kwargs behaviors:

*  previously, if a user set `names=None`, it was ignored and replaced
   with `names=True`
*  the `dtype` kwarg was ignored. If `update` was given, it was used as
   `dtype`, and if not, None was used. We can retain the `update` behavior
 by using `kwargs.setdefault("dtype",kwargs.get('update', None))`.
  This Closes #311 .
TST: Added regression test for recfromcsv dtype error, as suggested by @hpaulj
DOC: npyio.recfromcsv keyword argument changes

Added a note to recfromcsv about the `dtype` keyword,
as suggested by @hpaulj. Also added a note to the release notes,
about the change in the `update` keyword, as suggested by @charris.
STY: change and delete some comments in recfromcsv

Removed two irrelevant comments about code history.

P.S. my first try with Github's online editor.
ENH: Speed improvements and deprecations for np.select

The idea for this (and some of the code) originally comes from
Graeme B Bell (gh-3537).
Choose is not as fast and pretty limited, so an iterative
copyto is used instead.

Closes gh-3259, gh-3537, gh-3551, and gh-3254
Merge pull request #4358 from seberg/fast-select

ENH: Speed improvements and deprecations for np.select
STY: Fix some multiline C comments in npy_3kcompat.h.
Merge pull request #4545 from charris/style-fix

STY: Fix some multiline C comments in npy_3kcompat.h.
BUG:change formatting of assert_array_almost_equal

assert_array_almost_equal now prints the number of digits that were
being compared in the test instead of always printing 8 (the default
for array_repr). This would lead to uninformattive error messages.

Fixes #2367
TST: Add tests for build_err_msg
MAINT: fix unused variable warning
MAINT: ignore some more generated C files
ENH: add support for python ABCs

Beginning with version 2.6, python supports abstract base classes,
which contain a class hierarchy for numbers. This class hierarchy is
very similar to the one of numpy, so it is very easy to register
the numpy type hierarchy with the python type hierarchy.

This patch adds those registrations and also adds unit tests for it.
ENH: add numerator and denominator to integers

numbers.Integral types are supposed to have a numerator and
denominator attribute. This adds those two trivial attributes.
ENH: speed-up of triangular matrix functions

* `np.tri` now produces less intermediate arrays. Runs about 40% faster for
  general dtypes, up to 3x faster for boolean arrays.
* `np.tril` now does smarter type conversions (thanks Julian!), and together
  with the improvements in `np.tri` now runs about 30% faster. `np.triu`
  runs almost 2x faster than before, but still runs 20% slower than
  `np.tril`, which is an improvement over the 50% difference before.
* `np.triu_indices` and `np.tril_indices` do not call `np.mask_indices`,
  instead they call `np.where` directly on a boolean array created with
  `np.tri`. They now run roughly 2x faster.
* Removed the constraint for the array to be square in calls to
  `np.triu_indices`, `np.tril_indices`, `np.triu_indices_from` and
  `np.tril_indices_from`.
Merge pull request #4365 from larsmans/c-fixes

MAINT: fix unused variable warning
Merge pull request #4547 from tecki/master

add support for python ABCs
BUG: fix unaligned access of new indexing

Requires 16 bytes alignment from string and flexible dtypes, as
processing functions might access them on the itemsize which can be
larger than 1 byte (e.g. 8 bytes strings)
16 byte the largest alignment required for all numpy copy loops.
Closes gh-4314