* much work dtools.iterables
* finally implemented scReduceL and scReduceR functions
* tweaked API across iterables module
* added two state changing methods to dtools.err_handling.MB
* added put method to MB class
* if MB is empty, injects a value into it
* otherwise, do nothing
* added pop method to MB class
* if MB is not empty, remove the value and return it
* otherwise, raise ValueError
* found both methods useful to treat a MB just as a container
* avoid using these methods in pure code