Proof-of-concept for ufunc fancy indexing

Conflicts:

	numpy/core/code_generators/numpy_api.py
Add support for both unary and binary ufuncs
Add comments
Change 'select' method name to 'at'
Add unit tests

Conflicts:

	numpy/core/tests/test_ufunc.py
Check for sucessful call to MapIterBind
Misc fixes

- Fix crash when bind for second map iter fails
- Accept array like object for second operand
- Fix memory leaks
Rework 'at' method to fit customer's expectations.

'at' method should be functionally equivalent to op1[idx] += op2 (for add ufunc).
Update/expand unit tests
Update documentation for 'at' method
Add comment to 'at' method unit test
Only allow explicit index slicing in 'at' method
Correct implementation of 'at' method that covers all corner cases
Add more unit tests for 'at' method
Code cleanup for 'at' method
Add more unit tests for 'at' method
Fix issue with 'at' method when indices are all slice objects
Add documentation for new 'at' ufunc method
Fix build issue
Fix for crash when PyArray_MapIterSwapAxes is called

Set up default iteraxes array values in call to MapIterBind().