[NB] Add `place` and `merge_placements` scripts...

Add `place` and `merge_placements` scripts.  These scripts introduce a
dramatically simplified data structure, which eliminates the need for
offsets into block-positions arrays by defining the block-positions
array as a fixed-size array, with a shape that varies based on the
net-list.
Add missing files
[NB] Add recording of stats on each outer-loop...

Add recording of placement stats on each outer-loop iteration.  The
statistics collected match those printed in VPR's summary table during
placement.

The placement stats are recorded in a HDF5 output file.

Add a program to plot the statistics from a placement in an HDF5
placement output-file.  By default, temperature, radius-limit, and
mean-cost are plotted _(all normalized)_.
Usage:

    plot_place_stats.py [-h] [-b BLOCK_POSITIONS_SHA1]
                        hdf5_placements_file net_file_namebase

    Plot placement results based on net-file namebase

    positional arguments:
      hdf5_placements_file
      net_file_namebase

    optional arguments:
      -h, --help            show this help message and exit
      -b BLOCK_POSITIONS_SHA1, --block_positions_sha1 BLOCK_POSITIONS_SHA1
Add cyvpr.bin.do_route.route function, save ro...

Add `cyvpr.bin.do_route.route` function, which saves route-results in a HDF
file, with one table row per-route-state.  Each table row contains information
about the parameters used for the route, including channel-width, as well as if
the route was successful.  In addition, the following attributes are available
for each net: the number of bends, the wire-length, and the number of
wire-segments.

__NB__ The new `route` function is not yet the default action when running
`cyvpr.bin.do_route.route` as a main script.
Update slack values after even after 1st route...

Update slack values after even if first route attempt is successful.
Otherwise, the router might exit before the timing structures are updated,
leading to some invalid timing result data being saved in the corresponding
`RouteState` instance.
Remove `id` from route-state row in HDF table-def
Merge branch 'fix-route_invalid_timing'
Store max_router_iterations in route-state tabl...

Store `max_router_iterations` in route-state table.

Name output file from `cyvpr.bin.do_route` to match the provided command-line
arguments.