Remove deprecated code.
Add cyvpr.bin.route_from_hdf script/function...

Add cyvpr.bin.route_from_hdf script/function.

Usage:

    route_from_hdf.py [-h] [-f] [-o OUTPUT_PATH] [-D OUTPUT_DIR]
                      [-m MAX_ROUTER_ITERATIONS] [-b | -t]
                      [-w CHANNEL_WIDTH | -c CLBS_PER_PIN_FACTOR]
                      hd5_placement_file block_positions_sha1 arch_path
                      net_path [net_path ...]

    Run VPR route based on net-file namebase

    positional arguments:
      hd5_placement_file
      block_positions_sha1
      arch_path
      net_path

    optional arguments:
      -h, --help            show this help message and exit
      -f, --fast
      -o OUTPUT_PATH, --output_path OUTPUT_PATH
      -D OUTPUT_DIR, --output_dir OUTPUT_DIR
      -m MAX_ROUTER_ITERATIONS, --max_router_iterations MAX_ROUTER_ITERATIONS
      -b, --breadth_first
      -t, --timing_driven
      -w CHANNEL_WIDTH, --channel_width CHANNEL_WIDTH
      -c CLBS_PER_PIN_FACTOR, --clbs_per_pin_factor CLBS_PER_PIN_FACTOR
Add documentation to cyvpr.bin.merge_placements
[NB] Generalize table-merging code: merge, appe...

Generalize placements-table merging code by dividing the process into two
steps:

  1. Merge table structures.
  2. Append table rows.

The generic code implementing functions to perform the two steps above is in
the `cyvpr.bin.merge_table_nodes` module.  The `cyvpr.bin.merge_placements`
module defines a custom `assess_row` function to avoid duplicated rows when
appending placements and placement states during merging.