Replace the entire scripting engine with one that's code-generated

At the core this change adds two things:

1) A native library that looks like the old python api in xbmc/interfaces/native
2) A codegenerator that generates all of the C-python code to call the native library in xbmc/interfaces/swig

This is in preparation for a removal of xbmc/interfaces/python

This commit adds an alternate addon library where a codegenerator creates all of the CPython code that bridges a native implementation to Python. This is nowhere near ready but I wanted to get it in front of people. 

What you need to do to try it out:

1) You need SWIG installed. Older versions should work fine.
2) You need a JRE that can be run from the make command.
3) configure with --enable-swigaddons

Upon a successful make there will be a directory created with a bunch of generated source code here: 

```xbmc/interfaces/swig/generatedSWIGBindings ```

Current limitations:

1. ~~Callbacks are still under construction but the structure is there.~~
1. ~~There is a problem with identifying the differences between Strings and Unicode return values in python. Currently there is a way to override the default on a return value by return value basis but I don't know how many places need it.~~
1. ~~It only works on Linux for now.~~
1. ~~So far it has very limited testing.~~

TODO:

1. ~~work through many more issues~~
1. ~~the other two build platforms. Windows will need quite a bit of thought. @wsoltys - let me know what you think.~~
1. ~~Callbacks need more work.~~
1. ~~Control::addItem - doesn't currently exist.~~
1. ~~ListItem::addContextMenuItems is empty - probably shouldn't be.~~
1. ~~Dialog::browse is split between browse and browseMultiple due to the dual return types. Need to put these back together for Python.~~
1. ~~The PythonMonitor functionality is not available here yet.~~
1. ~~Better error messaging/handling when callbacks create an exception.~~
1. ~~String/CStdString distinction CStdString=unicode, String=non-unicode return value~~
1. ~~abortRequested is wrong~~
1. ~~Fix the Makefile for the generator to use mkdir -p~~
1. ~~Update the License text~~
1. ~~Documentation - use the doxygen comments to populate the doc string capabilities of python~~
1. ~~Allow the suppression of the codegenerator warnings.~~
1. ~~Reorganize the directories (suggestions welcome).~~

* xbmc/interfaces/native -> xbmc/interfaces/legacy
* move the generator outside of the source tree - probably tools.
* move the current bindings directory (xbmc/interfaces/swig/bindings) which has the templates for generating the python api bridge (language bindings) into xbmc/interfaces/bindings/python.
* move the SWIG interface files (*.i) currently in xbmc/interfaces/swig into xbmc/interfaces/apidef
* move the engine files (that code that ties the language bindings into xbmc. In this case XBPython.xx,XBPyThread.xx, etc) into xbmc/interfaces/engines/python.

this means there will be these new directories:
* xbmc/interfaces/legacy
* xbmc/interfaces/apidef
* xbmc/interfaces/bindings (currently with one subdirectory called 'python').
* xbmc/interfaces/engines (currently with one subdirectory called 'python').
* tools/apigenerator

Ideally the engines should be binary addons downloaded when a scripting addon requires it (like the python) - but I'll leave that for later.

I could merge the engines and bindings directories if anyone thinks that's more straightforward.

Then I need to make sure all of the platforms build with the new directory structure.


As usual, feedback is appreciated.