Add more information to the README, and improve formatting

 - Virtualization check
 - GCE nested virtualization guide
 - Clarified the relationship between the dpkg and apt commands
 - Added a reminder to reboot

Test: Validated that the `dpkg || apt` command works
Change-Id: Id5ffc411bc649e1de12ef1b3107fc8ff921d0ed2
diff --git a/README.md b/README.md
index 945e4f7..bd51d26 100644
--- a/README.md
+++ b/README.md
@@ -1,49 +1,66 @@
-# So you want to try cuttlefish?
+# Cuttlefish Getting Started
 
-1. Download, build, and install the host debian package:
+## Try Cuttlefish
 
-```bash
-git clone https://github.com/google/android-cuttlefish
-cd android-cuttlefish
-debuild -i -us -uc -b
-sudo dpkg -i ../cuttlefish-common_*_amd64.deb
-sudo apt-get install -f
-```
+1. Make sure virtualization with KVM is available.
 
-2. Go to http://ci.android.com/
-3. Enter a branch name. Start with `aosp-master` if you don't know what you're
+   ```bash
+    grep -cw vmx /proc/cpuinfo
+    ```
+
+   This should return a non-zero value. If running on a cloud machine, this may
+   take cloud-vendor-specific steps to enable. For Google Compute Engine
+   specifically, see the [GCE guide].
+
+   [GCE guide]: https://cloud.google.com/compute/docs/instances/enable-nested-virtualization-vm-instances
+
+2. Download, build, and install the host debian package:
+
+   ```bash
+   git clone https://github.com/google/android-cuttlefish
+   cd android-cuttlefish
+   debuild -i -us -uc -b
+   sudo dpkg -i ../cuttlefish-common_*_amd64.deb || sudo apt-get install -f
+   sudo reboot
+   ```
+
+   The reboot will trigger installing additional kernel modules and applying
+   udev rules.
+
+3. Go to http://ci.android.com/
+4. Enter a branch name. Start with `aosp-master` if you don't know what you're
    looking for
-4. Navigate to `aosp_cf_x86_phone` and click on `userdebug` for the latest build
-5. Click on `Artifacts`
-6. Scroll down to the OTA images. These packages look like
+5. Navigate to `aosp_cf_x86_phone` and click on `userdebug` for the latest build
+6. Click on `Artifacts`
+7. Scroll down to the OTA images. These packages look like
    `aosp_cf_x86_phone-img-xxxxxx.zip` -- it will always have `img` in the name.
    Download this file
-7. Scroll down to `cvd-host_package.tar.gz`. You should always download a host
+8. Scroll down to `cvd-host_package.tar.gz`. You should always download a host
    package from the same build as your images.
-8. On your local system, combine the packages:
+9. On your local system, combine the packages:
 
-```bash
-mkdir cf
-cd cf
-tar xvf /path/to/cvd-host_package.tar.gz
-unzip /path/to/aosp_cf_x86_phone-img-xxxxxx.zip
-```
+   ```bash
+   mkdir cf
+   cd cf
+   tar xvf /path/to/cvd-host_package.tar.gz
+   unzip /path/to/aosp_cf_x86_phone-img-xxxxxx.zip
+   ```
 
-9. Launch cuttlefish with:
+10. Launch cuttlefish with:
 
    `$ HOME=$PWD ./bin/launch_cvd`
 
-10. Stop cuttlefish with:
+11. Stop cuttlefish with:
 
    `$ HOME=$PWD ./bin/stop_cvd`
 
-# So you want to debug cuttlefish?
+## Debug Cuttlefish
 
 You can use `adb` to debug it, just like a physical device:
 
    `$ ./bin/adb -e shell`
 
-# So you want to see cuttlefish?
+## Launch Viewer
 
 You can use the [TightVNC JViewer](https://www.tightvnc.com/download.php). Once
 you have downloaded the *TightVNC Java Viewer JAR in a ZIP archive*, run it with