FileDescriptor: Add move and close methods

Made the following enhancements to the FileDescriptor class:
* Moved header file from file.hpp to file_descriptor.hpp to match naming
  convention used in other files.
* Added move constructor and move assignment operator so FileDescriptor
  objects can be put in containers like std::vector.
* Added close() method so users of class can optionally close the
  descriptor explicitly and check the return code for errors.  If not
  explicitly closed, the descriptor will still be closed by the destructor
  which ignores errors.
* Added automated tests
* Added doxygen comments

Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
Change-Id: I1e05bbb232443ed1a79728768aaaa1efac8707ec
diff --git a/gpio.hpp b/gpio.hpp
index edb9b77..0969995 100644
--- a/gpio.hpp
+++ b/gpio.hpp
@@ -1,6 +1,6 @@
 #pragma once
 
-#include "file.hpp"
+#include "file_descriptor.hpp"
 
 #include <linux/gpio.h>