turned build_session_ into a macro

Because of a limitation of Rust, structs can't have references into
  into parts of themselves, but code can. This change will allow
  de-Rc-ification of Handler and CodeMap.