Refactor area logic to world crate

$ rustc --version
rustc 0.10-pre (092afdb 2014-03-22 00:56:47 -0700)
host: x86_64-unknown-linux-gnu

$ RUST_BACKTRACE=1 rustc src/demogame/main.rs -o demogame --opt-level 3 -L . --cfg check-gl -C link-args='-lglfw3 -lGL -lX11 -lXxf86vm -lXrandr -lXi'
error: internal compiler error: unexpected failure
note: the compiler hit an unexpected failure path. this is a bug.
note: we would appreciate a bug report: http://static.rust-lang.org/doc/master/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
task 'rustc' failed at 'expected item, found unknown node (id=1141)', /home/rsaarelm/local/rust/src/libsyntax/ast_map.rs:256
stack backtrace:
   1:     0x7ffad0d71150 - rt::backtrace::imp::write::h65d4519594096df0zFb::v0.10.pre
   2:     0x7ffad0cd6b20 - rt::unwind::begin_unwind_inner::h76e51d0b3f21ae573fb::v0.10.pre
   3:     0x7ffad0cd67a0 - rt::unwind::begin_unwind_fmt::hcb4030a35e75e94bdfb::v0.10.pre
   4:     0x7ffacfe11ab0 - ast_map::Map::expect_item::h926341365065e5c2yWs::v0.10.pre
   5:     0x7ffad17bcff0 - middle::trans::consts::get_const_val::hf35e5dbbcbb0c325gTi::v0.10.pre
   6:     0x7ffad17bdc80 - middle::trans::consts::const_expr_unadjusted::h8aa95ecf95053fc9wbj::v0.10.pre
   7:     0x7ffad17bb7f0 - middle::trans::consts::const_expr::h30ccf7f1ea2db6bb3Ui::v0.10.pre
   8:     0x7ffad17bdc80 - middle::trans::consts::const_expr_unadjusted::h8aa95ecf95053fc9wbj::v0.10.pre
   9:     0x7ffad17bb7f0 - middle::trans::consts::const_expr::h30ccf7f1ea2db6bb3Ui::v0.10.pre
  10:     0x7ffad17bb160 - middle::trans::consts::const_vec::h5f24cef9329743d6zIi::v0.10.pre
  11:     0x7ffad17bdc80 - middle::trans::consts::const_expr_unadjusted::h8aa95ecf95053fc9wbj::v0.10.pre
  12:     0x7ffad17bb7f0 - middle::trans::consts::const_expr::h30ccf7f1ea2db6bb3Ui::v0.10.pre
  13:     0x7ffad17bb160 - middle::trans::consts::const_vec::h5f24cef9329743d6zIi::v0.10.pre
  14:     0x7ffad17bdc80 - middle::trans::consts::const_expr_unadjusted::h8aa95ecf95053fc9wbj::v0.10.pre
  15:     0x7ffad17bb7f0 - middle::trans::consts::const_expr::h30ccf7f1ea2db6bb3Ui::v0.10.pre
  16:     0x7ffad1717730 - middle::trans::base::get_item_val::h6d0d4cb5e1eec3caH9o::v0.10.pre
  17:     0x7ffad17bd660 - middle::trans::consts::trans_const::ha5c66b533e4b5e01rJj::v0.10.pre
  18:     0x7ffad1716510 - middle::trans::base::trans_item::haefb1368e3f72c06EPo::v0.10.pre
  19:     0x7ffad17f0160 - middle::trans::base::trans_mod::h443add462d5f45c2PUo::v0.10.pre
  20:     0x7ffad17f9dd0 - middle::trans::base::trans_crate::hb821fec7a7227b18Jvq::v0.10.pre
  21:     0x7ffad1e34cf0 - driver::driver::phase_4_translate_to_llvm::hd60d08bb19ab14c3ncf::v0.10.pre
  22:     0x7ffad1e36ec0 - driver::driver::compile_input::hea07fdb06f747ebclsf::v0.10.pre
  23:     0x7ffad1e5a9a0 - run_compiler::hb633d4f48873b5b685m::v0.10.pre
  24:     0x7ffad1e6dc40 - main_args::closure.90956
  25:     0x7ffad1e6c570 - monitor::closure.90841
  26:     0x7ffad1e67f40 - task::TaskBuilder::try::closure.90652
  27:     0x7ffad3bbd2c0 - task::spawn_opts::closure.7490
  28:     0x7ffad0d6c870 - rt::task::Task::run::closure.40702
  29:     0x7ffad0d77c30 - rust_try
  30:     0x7ffad0d6c6b0 - rt::task::Task::run::hbf611f12dab23ee8848::v0.10.pre
  31:     0x7ffad3bbd060 - task::spawn_opts::closure.7463
  32:     0x7ffad0d6fc10 - rt::thread::thread_start::h1eaa8730822d5e53AL9::v0.10.pre
  33:     0x7fface11dfe0 - start_thread
  34:     0x7ffad09a1ce9 - clone
  35:                0x0 - <unknown>