Add PList::Dictionary::const_iterator

... and const versions of three member functions, each returning const_iterator:
* Plist::Dictionary::Begin()
* PList::Dictionary::End()
* PList::Dictionary::Find()
diff --git a/include/plist/Dictionary.h b/include/plist/Dictionary.h
index 7a29f14..71d40ac 100644
--- a/include/plist/Dictionary.h
+++ b/include/plist/Dictionary.h
@@ -41,11 +41,15 @@
     Node* Clone() const;
 
     typedef std::map<std::string,Node*>::iterator iterator;
+    typedef std::map<std::string,Node*>::const_iterator const_iterator;
 
     Node* operator[](const std::string& key);
     iterator Begin();
     iterator End();
     iterator Find(const std::string& key);
+    const_iterator Begin() const;
+    const_iterator End() const;
+    const_iterator Find(const std::string& key) const;
     iterator Set(const std::string& key, const Node* node);
     iterator Set(const std::string& key, const Node& node);
     iterator Insert(const std::string& key, Node* node) PLIST_WARN_DEPRECATED("use Set() instead");
diff --git a/src/Dictionary.cpp b/src/Dictionary.cpp
index 5e2e1c0..59908c6 100644
--- a/src/Dictionary.cpp
+++ b/src/Dictionary.cpp
@@ -104,11 +104,26 @@
     return _map.end();
 }
 
+Dictionary::const_iterator Dictionary::Begin() const
+{
+    return _map.begin();
+}
+
+Dictionary::const_iterator Dictionary::End() const
+{
+    return _map.end();
+}
+
 Dictionary::iterator Dictionary::Find(const std::string& key)
 {
     return _map.find(key);
 }
 
+Dictionary::const_iterator Dictionary::Find(const std::string& key) const
+{
+    return _map.find(key);
+}
+
 Dictionary::iterator Dictionary::Set(const std::string& key, const Node* node)
 {
     if (node)