Replace doc pages with redirects to versioned doc pages.

* Add a new `redirect` Jekyll layout.
* Replace all pages under docs/ with redirects to corresponding page under
  versions/master/.
* Prepend links on Documentation sidebar, including generated navs for the
  Skylark Library and Build Encyclopedia, with prefix for versioned directory.
* Add code to both the internal jekyll-config.sh and external jekyll-tree.sh
  to add redirect pages for the Skylark Library and Build Encyclopedia.
* Bring the branched User Manual doc up to date with latest changes.

--
MOS_MIGRATED_REVID=131568800
diff --git a/site/jekyll-tree.sh b/site/jekyll-tree.sh
index d077345..a787963 100755
--- a/site/jekyll-tree.sh
+++ b/site/jekyll-tree.sh
@@ -40,24 +40,48 @@
 
 # Unpack the Build Encyclopedia into docs/be
 function unpack_build_encyclopedia {
-  local be_dir="$OUT_DIR/docs/be"
+  local be_dir="$OUT_DIR/versions/master/docs/be"
   mkdir -p "$be_dir"
   unzip -qq "$BE_ZIP" -d "$be_dir"
   mv "$be_dir/be-nav.html" "$OUT_DIR/_includes"
+
+  # Create redirects to each page in the Build Encyclopedia.
+  mkdir -p "$OUT_DIR/docs/be"
+  for f in $(find "$OUT_DIR/versions/master/docs/be" -name "*.html"); do
+    local filename=$(basename "$f")
+    cat > "$TMPDIR/out/docs/be/${filename}" <<EOF
+---
+layout: redirect
+redirect: docs/be/${filename}
+---
+EOF
+  done
 }
 
 # Unpack the Skylark Library into docs/skylark/lib
 function unpack_skylark_library {
-  local sl_dir="$OUT_DIR/docs/skylark/lib"
+  local sl_dir="$OUT_DIR/versions/master/docs/skylark/lib"
   mkdir -p "$sl_dir"
   unzip -qq "$SL_ZIP" -d "$sl_dir"
   mv "$sl_dir/skylark-nav.html" "$OUT_DIR/_includes"
+
+  # Create redirects to each page in the Skylark Library
+  mkdir -p "$OUT_DIR/docs/skylark/lib"
+  for f in $(find "$OUT_DIR/versions/master/docs/skylark/lib" -name "*.html"); do
+    local filename=$(basename "$f")
+    cat > "$TMPDIR/out/docs/skylark/lib/${filename}" <<EOF
+---
+layout: redirect
+redirect: docs/skylark/lib/${filename}
+---
+EOF
+  done
 }
 
 function copy_skylark_rule_doc {
   local rule_family=$1
   local rule_family_name=$2
-  local be_dir="$OUT_DIR/docs/be"
+  local be_dir="$OUT_DIR/versions/master/docs/be"
 
   ( cat <<EOF
 ---