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)
Here's the context of the `docker build -t busybox ...` from above. I used Jerome's busybox repo: https://github.com/jpetazzo/docker-busybox

but modified the Dockerfile to remove `FROM scratch`:

```
MAINTAINER Jérôme Petazzoni <jerome@docker.com>
ADD rootfs.tar /
CMD ["/bin/sh"]
```