Make `FROM` optional for base image Dockerfiles

There has been a lot of discussion (issues #4242 and #5262) about making
`FROM scratch` either a special case or making `FROM` optional, implying
starting from an empty file system.

This patch makes the build command `FROM` completely optional from now on
and if used requires it to be the first command in a Dockerfile. It DOES
NOT implicitly pull or install the image with ID '511136ea3c5a64f264b7...'
but instead makes it possible for a container to exist with a blank image
ID. This means every image ever can now use one fewer layer!

Goodbye '511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158',
it was nice knowing you.

Fixes #4242

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
> Hmm. Can you adjust ps to say “scratch” or “<no image>” or something similar? That might be nice to clarify what’s going on here.

I thought leaving it empty makes it pretty clear. It also follows what the other fields do when there's nothing to display, for example, the`PORTS` columns don't say `<no ports>`, it just leaves it empty.

Also, that field typically only shows an image ID or tagged repository name. I don't want to introduce a placeholder name like `scratch` since it would cause an issue if the user actually had a legitimate image named `scratch`. I'm agreeable to a placeholder like `<no image>` if other people are okay with it as long as it's on the client side and isn't something the daemon sets in the api response. I think the API responses for `GET /containers/json` and `GET /containers/(id)/json` should still return something with `{"image": ""}` in this case still.