ENH: Avoiding conversion of integer to NumPy Scalar.

There is a bottleneck in scalar operations, when trying to extract the underlying C value from a Python integer. 
Numpy converts the Python scalar into its matching scalar (e.g. PyLong -> int32) and then it extracts the C value from the NumPy scalar. 

I have avoid conversion for know integer type but extracting its value.

For <i>byte, short, int, long</i>
<pre>
#if PY_VERSION_HEX >= 0x03000000
    if(PyLong_CheckExact(a)){
        *arg1 = PyLong_AsLong(a);
        return 0;        
    }
#else
    if (PyInt_CheckExact(a)){
        *arg1 = PyInt_AS_LONG(a);
        return 0;
    }
#endif
</pre>

Performance
------------------
1.09 Array * Array
1.09 Array + Array
1.18 np.int * np.int
1.14 np.int + np.int
1.08 PyInt * Array
1.07 np.int * Array
1.10 PyInt + Array
1.09 np.int + Array
1.08 PyInt * PyInt
1.09 PyInt + PyInt
2.53 PyInt * np.int
2.69 PyInt + np.int
1.06 np.int  * np.int
1.13 np.int + np.int
7.29 PyInt < np.int
2.38 np.int ** 2
1.07 PyInt ** 2

where
<pre>
Array = np.array([2234,32342])
PyType = 3
NyType = Array[0]
</pre>
Speedup Datasheet is https://docs.google.com/spreadsheet/ccc?key=0AnPqyp8kuQw0dHpITGFYWlVZelhHSl83bzA5U0dlMmc&usp=sharing

Test case
---------------------
I have written test cases to ensure the behavior of integer in separate pr #3592