save a malloc() call when instantiating cython.array()

--HG--
extra : amend_source : 8ea50b285fc8d55899450c179754d7c2aba94591
reduce overhead for cython.array() initialiser a bit
fix memory leak in exception case
use CPython heap memory allocation for memory views where possible (outside of nogil sections) as it tends to be faster than plain malloc()
whitespace fix