Refactored new ScopeData for improved abstraction.

(Previously, scopes were solely identified with NodeId's; this
refactoring prepares for a future where that does not hold.)

Ground work for a proper fix to #8861.
Yes, Fnv certainly.

On Mon, Nov 17, 2014 at 09:59:01AM -0800, Jonathan S wrote:
> >      free_region_map: RefCell<FnvHashMap<FreeRegion, Vec<FreeRegion>>>,
> > -    rvalue_scopes: RefCell<NodeMap<ast::NodeId>>,
> > -    terminating_scopes: RefCell<NodeSet>,
> > +    rvalue_scopes: RefCell<NodeMap<ScopeData>>,
> > +    terminating_scopes: RefCell<HashSet<ScopeData>>,
> 
> Similarly, this should be a `FnvHashSet`.
> 
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/rust-lang/rust/pull/19033/files#r20451887