Save start error into State.Error when the container fails to start

When a container failed to start, in addition to returning the error message in output, we also save that error message into `State.Error` so it can be read from `docker inspect` again by user without having to start the container again / read from the logs.

This is particularly helpful for container management systems where we don't want to save last error message returned in `POST /containers/:id/start` output, but still want to let users read it later so they can resolve it.

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)