build: support versioning without hg
build: support versioning without hg

CL 4873048 introduced the ability to build without hg and
getting an "unknown" version.  While this approach works
to avoid the hg dependency, it also means that every
exported tree that is built without hg or .hg will have not
only missing information, but will also be compatible to
one another.  Considering that it is a common practice to
remove the VCS data in distributions, I suggest we don't
take this approach to avoid its consequences.

This CL fixes the same problem in a different way: if a
VERSION file at the top of the tree exists, use it at
all times.  If it doesn't, fall back to using information
from hg necessarily, and fail if that's not possible.  The
error message when VERSION and hg are not available
instructs users to handle it properly.

The VERSION file can be generated with
"src/version.bash -save" while hg is still around.

R=golang-dev, rsc, gustavo
CC=golang-dev
http://codereview.appspot.com/4897043

Triskite/willstone-goclone,rdp/rogerpack2005-golang,d0f/go-zh,npe9/noahevans-go9,mhennings/marcohennings-go,sanjosh/sanjos100-tipc,glycerine/jeaten-go-arrayof-structof,webfd/go-zh,webfd/go-zh,bryanxu/go-zh,npe9/noahevans-go9,mhennings/marcohennings-go,Triskite/willstone-goclone,npe9/noahevans-go9,rflanagan/reginaldflanagan-project1,Triskite/willstone-goclone,scirelli/scirelli-go,scirelli/scirelli-go,bryanxu/go-zh,bryanxu/go-zh,mhennings/marcohennings-go,npe9/noahevans-go9,glycerine/jeaten-go-arrayof-structof,glycerine/jeaten-go-arrayof-structof,sanjosh/sanjos100-tipc,scirelli/scirelli-go,Triskite/willstone-goclone,rdp/rogerpack2005-golang,mhennings/marcohennings-go,npe9/noahevans-go9,glycerine/jeaten-go-arrayof-structof,rflanagan/reginaldflanagan-project1,glycerine/jeaten-go-arrayof-structof,bryanxu/go-zh,webfd/go-zh,d0f/go-zh,d0f/go-zh,d0f/go-zh,glycerine/jeaten-go-arrayof-structof,rflanagan/reginaldflanagan-project1,bryanxu/go-zh,Triskite/willstone-goclone,npe9/noahevans-go9,rflanagan/reginaldflanagan-project1,sanjosh/sanjos100-tipc,d0f/go-zh,scirelli/scirelli-go,sanjosh/sanjos100-tipc,rflanagan/reginaldflanagan-project1,Triskite/willstone-goclone,mhennings/marcohennings-go,sanjosh/sanjos100-tipc,glycerine/jeaten-go-arrayof-structof,rdp/rogerpack2005-golang,mhennings/marcohennings-go,rdp/rogerpack2005-golang,rdp/rogerpack2005-golang,bryanxu/go-zh,d0f/go-zh,rflanagan/reginaldflanagan-project1,webfd/go-zh,rflanagan/reginaldflanagan-project1,Triskite/willstone-goclone,webfd/go-zh,rdp/rogerpack2005-golang,rdp/rogerpack2005-golang,mhennings/marcohennings-go,webfd/go-zh,Triskite/willstone-goclone,glycerine/jeaten-go-arrayof-structof,mhennings/marcohennings-go,scirelli/scirelli-go,webfd/go-zh,rdp/rogerpack2005-golang,webfd/go-zh,npe9/noahevans-go9,d0f/go-zh,bryanxu/go-zh,scirelli/scirelli-go,bryanxu/go-zh,scirelli/scirelli-go,npe9/noahevans-go9,scirelli/scirelli-go,sanjosh/sanjos100-tipc,rflanagan/reginaldflanagan-project1,sanjosh/sanjos100-tipc,sanjosh/sanjos100-tipc,d0f/go-zh