Change m_schema in Parser to a shared pointer

Shared pointers are reference counted, so this will prevent segmentation
faults in some cases.

Change-Id: Ie180cf6a639c8e73e70f395d19a6082b4fce73d4
diff --git a/src/parser.hpp b/src/parser.hpp
index 0a253c1..05e636e 100644
--- a/src/parser.hpp
+++ b/src/parser.hpp
@@ -26,12 +26,12 @@
 
 class Parser {
 public:
-    Parser(const Schema& schema);
+    Parser(const std::shared_ptr<const Schema> schema);
     command_ parseCommand(const std::string& line, std::ostream& errorStream);
     void changeNode(const path_& name);
     std::string currentNode() const;
 
 private:
-    const Schema& m_schema;
+    const std::shared_ptr<const Schema> m_schema;
     path_ m_curDir;
 };