resolved concurrency issue that was happening itermittently causing us to deserialize our header incorrectly

Our header would sometimes deserialize incorrectly.  This was because
our definition was pointing to a location where our header was not
actually at.  This actually pointed out a larger issue that could have
caused our aggregates to become correct had azure had a "hiccup" in its
services.  When we now write our definition we write the location of the
newly anticipated header, but also write the location the header is
currently at.  This allows us to recover if we fail to write the header.
Our GetHeaderDefinition call now falls back to the previous header
location if it is unable to deserialize.  I that next call fails, then
we go ahead and throw out.

Also the code was given a walkthrough and any old crufty code that was
no longer applicable but created during the iterative development
process to isolate errors was resolved.