started adding documentation

changed behavior of saveMainContext so it will save synchronously if already on the main
also added saveMainContextAndWait for synchronous saving on a background queue