Swig binary cmake option

Allows the user to specify an external swig binary, in case the bundled version is incompatible with the platform.  This is a pretty high priority change.

cc: @pradeepto, @scottpurdy