switch strstream to stringstream

I've moved the SharedPythonOStream from strstream to stringstream. Now, there is a mysterious new error in the tests.
forcing size on PythonOStream

This is just a temporary measure as I reinstate the size error that was thrown previously.
added back the sizing options

Now, the SharedPythonOStream will return a python string of a specified size. If more is written to the ostream than is specified, an error is thrown.
little bugs

In array_algo.hpp there was a typedef unused causing a bunch of warnings.

In LoggingException.hpp there was a comparison between a signed and unsigned value

In the others, there were some little changes that I though were in my local repo already, but apparently not. I remade NextPythonSize and reordered some variable definitions
removed blocking from a persistent_size

Not sure why there were separate blocks created to make separate stringstreams, so I just removed them and used one stringstream for the whole function.
fixed off by two error

I have no idea why the use of stringstream has increased the length of the saving output by two, but it works, so I'm saving it.