Make `FROM scratch` a special cased 'no-base' spec

Make `FROM scratch` a special cased 'no-base' spec
    
    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 scratch` special cased from now on
    and if used does not pull/set the the initial layer of the build to the ancient
    image ID (511136ea..) but instead marks the build as having no base image. The
    next command in the dockerfile will create an image with a parent image ID of "".
    This means every image ever can now use one fewer layer!
    
    This also makes the image name `scratch` a reserved name by the TagStore. You
    will not be able to tag an image with this name from now on. If any users
    currently have an image tagged as `scratch`, they will still be able to use that
    image, but will not be able to tag a new image with that name.
    
    Goodbye '511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158',
    it was nice knowing you.
    
    Fixes #4242
    
@thaJeztah @erikh I've added `<no image>` to what the client will now output on `docker ps` with the latest update.