Updated proposed shell implementation for Map and MapFactory classes

Note that there are known problems with this, e.g. both "portals" and
"items" will have to be objects that contain more information than
simple points. For example, portals must indicate which map will be
traversed to, and items will need to indicate the item type... even
obstacles may need more information, if we want to be clever