SetRemovalError wrote ErrorMsg before taking the state lock, so it raced
with readers that hold the lock, such as container inspect.
A failed removal sets the error through it, and a successful one clears
it through SetRemoved.
Assign ErrorMsg directly while holding the lock instead of calling
SetError, which does no locking even though its name suggests it is safe
for concurrent use.
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>