Abort migration early when not enough space.

Otherwise we potentially waste minutes of the users time copying
data that will never fit.

Also fix bug around storage calculation.  It's confusing, but f_bsize
is not the value you're looking for; the real block size is f_frsize.

Test: builds, boots
Bug: 27590986, 36840579
Change-Id: I77c63e259356824cc75a3adcf3f4af567efdc7aa
diff --git a/Utils.cpp b/Utils.cpp
index 72d3801..443df1d 100644
--- a/Utils.cpp
+++ b/Utils.cpp
@@ -432,7 +432,7 @@
 uint64_t GetFreeBytes(const std::string& path) {
     struct statvfs sb;
     if (statvfs(path.c_str(), &sb) == 0) {
-        return (uint64_t)sb.f_bfree * sb.f_bsize;
+        return (uint64_t) sb.f_bavail * sb.f_frsize;
     } else {
         return -1;
     }