If and account can't be loaded, do not perform an operation

Now, all operations take an Account, rather than an
accountId. The account must be loaded prior to performing
the operation. If it cannot be for some reason, we won't
even start. This solves the problem of calling syncStart(),
and then being unable to call syncEnd() because we don't
have an account object.
I think this could still be cleaner. I'd rather not pass
the account in the constructor, and instead set it in
doOperation(). That's too big of a change for right now
though, maybe after the next release.

Change-Id: I460b7a55e545a5822d6424e5db9b344d50a55fa4
11 files changed