Move parse functions to its respective types, rename `Colour` for consistency with PropertyValue::ColorValue, add documentation to map members, add Map::source, misc improvements