added argwriters and tests
split Python25Mapper.ParseTupleAndKeywordArgs into GetArgValues / SetArgValues.

by william with a dash of jonathan
PyArg_ParseTupleAndKeywords work

* Implemented IntArgWriter and SizedStringArgWriter
* Python25Mapper will construct appropriate dictionaries of argIndex:argValue and argIndex:argWriter, and use the 2 in conjunction to fill in the correct parts of the supplied pointer table
* Python25Mapper can temporarily store pointers for subsequent deallocation; string data provided to C functions in PA_PTAK is not leaked, but becomes invalid at the end of the call into C.
* Factored test allocators out to tests/utils/allocators.py.

By: Jonathan, William
Completed primitive PyArg_ParseTupleAndKeywords

* Added C function to translate PyArg_ParseTupleAndKeywords' varargs into a pointer array for consumption by C#.
* Added leak test for PyArg_ParseTupleAndKeywords, which is run in a separate process to reduce the effects of previous allocations by other tests.
* Changed build process to recreate the test libraries which have been removed from source control
* Changed PyArg_ParseTupleAndKeywords to return an int throughout, due to lack of bool in C
* Moved intSize, ptrSize, and OffsetPtr to tests/utils/memory.py

By: Menno, William
* Unbroke runtests.bat
* Added basic non-useful PyString_FromStringAndSize

By: Menno, William
Tweaks

* override files now have .c extension so we get syntax highlighting
* stub libraries are now initialised with a data_setter as well as an address_getter; this is using to fill in blocks of memory declared in the stub (as opposed to pointers declared in the stub, which can be set to point to memory allocated by the managed program.)
* stubmaker will now allow for custom data (as blocks of memory) rather than just void*s
* PythonMapper now has machinery to fill data for PyString_Type (but no good implementation yet)
* pyarg_parsetupleandkeywordstest no longer runs the risk of having its PythonMapper GCed halfway through

by: William, Glenn
Consistency

* Renamed tests/data/source to tests/data/src

by: William
rearrangement, rationalisation, bugfixes

* No longer uses CPython to build -- ipy only.
** as a result, subprocess and popen calls have been changed.
* functionalitytest and pydimportertest now correctly unload dlls and no longer confuse other tests run in the same process
* added leaktest, which scans the leaktests directory and runs each leaktestcase in a new process

by: William
rationalisation

* Moved Kernel32 functions into their own class

by: William
now builds and runs tests with make

by: William
Refactoring tests

* Added runtest module with makesuite and run functions;
* use above module to create and run all tests
* moved pyarg_parsetupleandkeywordstest into leaktests, which will soon be renamed to 'separate-process-tests' or something

By: xtian, william
rename

* renamed leaktests to memorytests

by: xtian, william
nod towards abstraction

* Added CPyMarshal as an extra layer of indirection for reading/writing memory, in the hope that it will make forthcoming 64-bit port less infeasible
* Replaced all direct Marshal read/writes with CPyMarshal read/writes.
* Finished replacing python with ipy throughout

by: xtian, william
* Moved Offset from ArgWriter to CPyMarshal
* Added PyString_FromStringAndSize (with real implementation), using new PyStringObject struct
* Added null implementations of _PyString_Resize, PyEval_RestoreThread[Save|Restore]Thread

By: William, Xtian, Jonathan
* Implemented _PyString_Resize
* Added Realloc method to allocators
* Implemented basic exception storage on Python25Mapper for errors in _PyString_Resize
* Added mechanism for reading data from CPython objects (for PyStrings filled in by C code)

By: Jonathan, William
* PyMethodDef functions now return values
* C-created PyStringObjects are now converted into real strings on demand.
* bz2.compress() works!!!

by: Xtian, William
* Implemented PyArg_ParseTuple
* Fixed foolishness in separate-process tests which prevented some errors from proagating correctly.

By: Xtian, William
/dance /cheer

* Made SizedStringArgWriter work properly by removing moronic assumptions about encodings.
* Fixed failure to properly track reallocated memory in _PyString_Resize.

By: Xtian, William
* PyArg_ParseTuple[AndKeywords]? now store exceptions from ArgWriters
* SizedStringArgWriter now raises UnicodeError in appropriate circumstances

by: Michael, William
* _jumpy_dispatch functions in generated modules now raise last error set on the mapper.

by: Michael, William
* Implemented PyString_FromString
* Implemented PyModule_AddObject for objects which exist in ptrmap
* bz2.__author__ now holds correct value

By: Michael, William