gui: make resources type safe

- add string, int, color and resource loading helpers
- use typed resource classes, and some cleanup in loading code
- remove abstract GetResource() to enforce type safe access
- add height and width query methods to resources and use them
- minor cleanup
- simplify LoadPlacement

Change-Id: I9b81785109a80b3806ad6b50cba4d893b87b0db1
diff --git a/gui/mousecursor.cpp b/gui/mousecursor.cpp
index 1c22356..6255886 100644
--- a/gui/mousecursor.cpp
+++ b/gui/mousecursor.cpp
@@ -58,19 +58,12 @@
 	child = node->first_node("background");
 	if(child)
 	{
-		attr = child->first_attribute("color");
-		if(attr)
-			ConvertStrToColor(attr->value(), &m_color);
-
-		attr = child->first_attribute("resource");
-		if(attr)
+		m_color = LoadAttrColor(child, "color", m_color);
+		m_image = LoadAttrImage(child, "resource");
+		if(m_image)
 		{
-			m_image = PageManager::FindResource(attr->value());
-			if(m_image)
-			{
-				mRenderW = gr_get_width(m_image->GetResource());
-				mRenderH = gr_get_height(m_image->GetResource());
-			}
+			mRenderW = m_image->GetWidth();
+			mRenderH = m_image->GetHeight();
 		}
 	}