Consolidate the new python pointer-wrapping code.

Use the python array parameter wrapping code to handle POD pointer
parameters, rather than using code that is POD-pointer specific.
This makes wrapped pointers behave exactly the same as wrapped arrays,
except the way that the size is set for pointers.  This patch also
adds a test for the wrapped pointers.

Change-Id: I5b69606a95d94e03b53530f059c1d1e6b0921ce1
Consider arrays and pointers to be equivalent for precedence.

In C++, it is valid to have two signatures such as these:
 void SetPosition(const double x[3]);
 void SetPosition(const float *x);
In python, however, there is only one floating-point type, so wrapping
a "float" method when an equivalent "double" method already exists does
not serve any purpose.  In fact wrapping the "float" method in this kind
of situation generates dead code.  In order to keep such dead wrapper
code from being generated, I've made the wrappers consider arrays and
pointers to be equivalent when culling methods according to type precedence.

Change-Id: I8346a07cf62a6422ec36e2bc4c15d588b3e2ce53
Merge topic 'python-pointer-cleanup' into master

0f6d9de3 Consider arrays and pointers to be equivalent for precedence.
fa15dcde Consolidate the new python pointer-wrapping code.