Add default __eq implementation

* Renamed SWIG_Lua_equal to SWIG_Lua_class_equal
* If class has no __eq implemented, then default __eq is provided.
  Default __eq compares actual pointers stored inside Lua userdata
Moving variable declaration to the beginning of the block
More tests for equality operator overloading
%extend symbols for nested structs get into a wrong C symbol table
test fixed
Add runtime test for %extend and nested union
Merge branch 'wkalinin-csymbols-2' - %extend and nested structs

* wkalinin-csymbols-2:
  Add runtime test for %extend and nested union
  test fixed
  %extend symbols for nested structs get into a wrong C symbol table
CHANGES update
Merge pull request #176 from v-for-vandal/lua_eq

Add default __eq implementation for Lua
changes file updates
Add 3.0.2 release date
Fix equality testcase
Fix example clean target in makefile for operating systems that don't use .so as shared library extension
Use 4 spaces in emitFunctionShadowHelper for python
Fixed pep8 issues E701, E203, E231, E261
Fixed some pep8 issues E302
Fixed some pep8 issues E701
Fixed another E231
Fixed another E701
Fix function naming conflict with class overloads.

This fix takes into account the classname while generating overload
handlers.

Example:

If you have two classes:

  class A {
    public:
      void doSomething(int);
      void doSomething(double);
  };

  class B {
    public:
      void doSomething(int);
      void doSomething(double);
  };

Before this patch, the overload handlers for A::doSomething and
B::doSomething create conflicting names and function redefinition errors
are caused.

After the patch, the overload handlers are named classname_doSomething
and no longer conflict.

This is might not the best way to implement this, but it
solves a critical problem on large projects, and specifically can affect
operator overloads that are being wrapped.