Refactored to remove circular imports, and added main functions

To fix #12, the circular import issue, I split off `npc-common` and `room-common` "submodules" from `npc` and `room`. The `common` "submodules"  contain all the structures and functions used by modules that `npc` and `room` import.

Here's a nice diagram showing the new dependency structure:

![dependency diagram](https://cloud.githubusercontent.com/assets/5864305/2622218/42de9de4-bc97-11e3-8ba8-08a9c1c3aeb1.png)

Other changes included in this pull request:
* Added main function and related functions. 
* Added functions that take a character structure and a room structure to `item` and `npc` modules (as prep for calling `perform-item-transaction` and `npc-encounter`).
* Added `in-dir` function to `utilities` (given coordinates and a direction, it gets the next coordinates in that direction)
* Added `update-room-at-coords` helper to `room-common` (updates the structure at the given coordinates within a room)
* Assorted bug fixes and enhancements