Add a latestbuild pathway to the devserver.

This utilizes code in devserver_util to display the latest build.
Add an option for checking for a particular milestone, this will be helpful
once all branches catch up and are staged in the same target dir.

Add some more error checking and unittests for GetLatestBuild.
Fix a random autoupdate_unittest bug.

Remove FindBuild and its unittests.

TEST=unitests and local tests.
BUG=chromium-os:27719

Change-Id: I2b99a0e47a963fc528c1ad4bac49e340a24a9480
Reviewed-on: https://gerrit.chromium.org/gerrit/18556
Commit-Ready: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
diff --git a/autoupdate_unittest.py b/autoupdate_unittest.py
index 4c97332..317dc42 100755
--- a/autoupdate_unittest.py
+++ b/autoupdate_unittest.py
@@ -69,7 +69,7 @@
     key_path = 'test_key_path'
     src_image = 'test_src_image'
     target_image = 'test_target_image'
-    hashes = ['12345', '67890', 'abcde']
+    hashes = ['12345', '67890', 'abcde', 'patched_kernel']
 
     autoupdate.Autoupdate._GetMd5(target_image).AndReturn(hashes[1])
     autoupdate.Autoupdate._GetMd5(src_image).AndReturn(hashes[0])
@@ -79,7 +79,8 @@
     au_mock = self._DummyAutoupdateConstructor()
     au_mock.private_key = key_path
     update_dir = au_mock.FindCachedUpdateImageSubDir(src_image, target_image)
-    self.assertEqual(os.path.basename(update_dir), '%s_%s+%s' % tuple(hashes))
+    self.assertEqual(os.path.basename(update_dir),
+                     '%s_%s+%s+%s' % tuple(hashes))
     self.mox.VerifyAll()
 
   def testGenerateLatestUpdateImageWithForced(self):