This PR addresses #110 and #157 (pickling of Python models) as follows:
Add save_to/load_from_string methods to C++ SvmModel class. These are basically the same as the save_to/load_from_file methods but write to a string instead of a file. Refactor the latter functions to work through the new functions (in other words creating a string then saving it to a file) to avoid code duplication.
Create the corresponding extern "C"{ } functions in thundersvm-scikit.cpp
Add save_to/load_from_string methods to python SvmModel class
Finally, add getstate and setstate functions which enable pickling.
This PR addresses #110 and #157 (pickling of Python models) as follows: