Introduce a new type for representing map coordinates.

To resolve the ambiguity introduced when the introduction of isometric maps meant that cell and map coordinates were no longer equivalent, a new type has been introduced so they can each be represented separately.

The MPos type represents map coordinates. I have moved the static MapToCell and CellToMap methods into instance methods against the CPos and MPos types. I'll probably implement more changes at some point to reduce the number of conversions where possible, but I'd just like to get map coords in the door for now so to speak.

I played a quick round of TS and things looked okay to me.
Maybe `ToCPos` to match `CPos.ToMPos`?