Improve caching performance

Use `cPickle` instead of `pickle` and use best available protocol
Bump version
Build workflow zip
Add data-saving methods and customisable serialisation