Two real changes:
Two real changes:

1) Add support for local jailed nodes. This support overlaps in a nasty way
   with remote jailed nodes, but I added this for testing purposes, and as
   it turns out its pretty handy. A second pass is needed to unify remote
   and local jails, but for now this is how it goes:

  	tb-set-hardware $node3  pc600
  	tb-set-hardware $nodev1 pcvm600
  	tb-fix-node $nodev1 $node3

  So, "fix" $nodev1 to $node3. The intent is that once $node3 is
  allocated by assign to a real testbed node, we can then allocate a
  virtual node on pcXX to $nodev1. I did this primarily to allow for
  easy testing of jails via my NS file, without having to hack assign
  wrapper too deeply. So, after assign runs, I use avail to get the
  available vnodes on the assigned pcXX, allocate those for the virtual
  nodes. At present, we still depend on pre-exsiting pcvm nodes for each
  real node.

2) Add code to assign non-overlapping port ranges to each experiment. This
   could be moved to an external script, but is fine right here. There is
   an ipport_ranges table for determining a testbed wide range (currently
   256 ports). This is of course only meaningful when using jailed nodes,
   so do not bother to set a range (and use up the port space) if no jailed
   (virtual) nodes.

nmc-probe/emulab-nome,nmc-probe/emulab-nome,nmc-probe/emulab-nome,nmc-probe/emulab-nome,nmc-probe/emulab-nome,nmc-probe/emulab-nome,nmc-probe/emulab-nome,nmc-probe/emulab-nome,nmc-probe/emulab-nome,nmc-probe/emulab-nome,nmc-probe/emulab-nome