Add pickle support to Shape

This enhancement allows Shape and Shape-derivative objects to be dumped (saved) and loaded using Python's standard pickle module. Loading models by this method, instead of parsing them, is much quicker (got about x6 faster loading times).