First attempt to make CasADi usable as a dependency for external SWIG modules.

When doing %import "casadi.i", some things follow along that probably shouldn't.
This patch
 * Adds a define -DCASADI_MODULE in swig/CMakeLists.txt that is in effect when
   CasADi builds its SWIG wrappers, but should not be defined in other modules.
 * Adds #ifdef CASADI_MODULE to exclude a few things when in another module:
   * Typemaps on non-CasADi types: int, double, vector<int>, vector<double>
   * %exception directives: depend on a CasADi-internal flag, define macros
     START and STOP that are likely to conflict with existing symbols, and also
     depend on exception.i.

Note: Additionally, when using %import "casadi" in another module, standard includes
like std_vector.i and exception.i that should be included in the module must be
included before %import "casadi", since their inclusion from within the
imported casadi.i will otherwise cause them to be imported instead.
Merge pull request #861 from toivoh/module_compatible

First attempt to make CasADi usable as a dependency for external SWIG modules