moved diff pretty printing to pprint
extracted the py 2/3 compatible way of getting user input into a separate function (useful for what comes next -- partial commits)