26902 Initial code review

Created a branch from the very first commit to be able to review the whole code written so far.
This does not mean that a merge should be done after the review is done, this is a "dummy" pull request.
Any reason to prefer a pickle over a JSON file which would human readable ? ( and hackable ). Any reason to not use standard `with open(session_file, "wb") as fh:` ?