make sure environment is correctly retained after loading fake module
use load_fake_module and clean_up_fake_module where we should be using it
don't break API w.r.t. load_fake_module return value and clean_up_fake_module arguments
don't restore entire environment, only stuff that was (incorrectly) unset by unloading fake module
Merge pull request #431 from boegel/load_fake_mod

restore environment after loading fake module, use load_fake_module function where we should