Add f2fs support for private volumes.

When formatting volumes, pass along fsType string which can be "auto"
to let the volume select the best choice.  For now, private volumes
assume that MMC devices (like SD cards) are best off using f2fs when
both kernel support and tools are present, otherwise fall back to
ext4.  Use blkid when mounting to pick the right set of tools.

Move filesystem utility methods into namespaces and place in separate
directory to be more organized.

Bug: 20275581
Change-Id: Id5f82d8672dda2e9f68c35b075f28232b0b55ed4
diff --git a/PublicVolume.h b/PublicVolume.h
index 45313ec..fd400f2 100644
--- a/PublicVolume.h
+++ b/PublicVolume.h
@@ -47,7 +47,7 @@
     status_t doDestroy() override;
     status_t doMount() override;
     status_t doUnmount() override;
-    status_t doFormat() override;
+    status_t doFormat(const std::string& fsType) override;
 
     status_t readMetadata();
     status_t initAsecStage();