ENH: tell gcc to unroll strided copy loops

The strided copy loops profit a lot from unrolling as the number of
operations executed is in each iterations very small.
GCC needs to be told explicitly to do unrolling even on O3.

Unrolling is only profitable if the move can be done in a single
instruction, else the increased code size makes it slower, thus the flag
is only used for operations on element sizes less equal the native
pointer size.

Tested to improve performance of by 20-50% on intel core2duo, xeon
5xxx/7xxx and amd phenom x4.
BUG: Campanion Matrix was scalar, not matrix for degree 1.

The companion matrices returned by the various polynomial types was
a scalar in the degree one case instead of a 2-D array. Fix that and
add a test to check for that result.

Closes #3459.
Merge pull request #3460 from charris/fix-polynomial-companion-matrices

BUG: Campanion Matrix was scalar, not matrix for degree 1.
MAINT: make binary_scalar2 static and put __m128i into a template
ENH: vectorize boolean reductions

Improves performance by a factor of 5 to 10 depending on the cpu.
These operations currently can't be autovectorized by gcc 4.8.
Merge pull request #3429 from juliantaylor/copy-unroll

ENH: tell gcc to unroll strided copy loops
Merge pull request #3466 from juliantaylor/vectorize-bool

vectorize boolean reductions
ENH: Allow unnamed return values in Returns section of doc string

Developers usually only need the type of a return value
followed by a brief description. However, in some cases
providing a name for a return value can make the documentation
clearer. This enhancement changes the format of the Returns
section such that the type is required, and the name is
optional:

    Returns
    -------
    int
        Description of anonymous integer return value.
    x : str
        Description of string return value named `x`.

With this change, if a colon is not present, then the entire
line is interpreted as the return type. In all other cases,
the Returns section is interpreted according to the current
rules.

Consistent with the current format, if a colon is present, then
the text to the left of the colon is interpreted as the name;
and the text to the right of the colon is interpreted as the
type. This makes the proposed change backwards compatible with
existing documentation.
BUG: add module extensions to load_library search list

on mac, windows and linux (with >= py3.2) shared libraries and loadable
module have different extensions, so check both for all platforms.
Merge pull request #3472 from juliantaylor/load-lib

BUG: add module extensions to load_library search list
Merge pull request #3468 from RelentlessIdiot/numpydoc_returns_unnamed

ENH: Allow unnamed return values in Returns section of doc string