Added functoolsext
Added loosecontextmanager so __exit__ can be called without args.
Required some awesome compatibility work!