runtime: fix memory allocation on 386
runtime: fix memory allocation on 386

BSD and Darwin require an extra page between
end and the first mapping, and Windows has various
memory in the way too.

Fixes issue 1464.

R=r, r2
CC=golang-dev
http://codereview.appspot.com/4167041

tav/go,tav/go,tav/go,tav/go,tav/go,tav/go,tav/go