message: Allow using map or unordered_map when parsing a string into an enum
diff: #include <NAS2D/StringUtils.h>
  #include <NAS2D/Xml/Xml.h>
  #include <string>
  +#include <map>
  #include <unordered_map>
  #include <typeinfo>
  #include <type_traits>
  @@ -27,6 +28,19 @@ T stringToEnum(const std::unordered_map<std::string, T>& table, std::string valu
  }
  +template<typename T>
  +T stringToEnum(const std::map<std::string, T>& table, std::string value)
  +{
  + auto it = table.find(value);
  + if (it != table.end())
  + {
  + return it->second;
  + }
  +
  + throw std::runtime_error("Unable to parse enum with value of " + value);
  +}
  +
  +
  // Create an overload to parse specific enums
  template<typename T, std::enable_if_t<!std::is_enum<T>::value, bool> = true>
  void parseElementValue(T& destination, const NAS2D::Xml::XmlElement* element)
  