2D placement + blacklist reparse function

test_2d_placement will use the first two nontrivial eigenvectors to
place nodes in 2D
parse_hgr_sparse_alt3_blacklist is the same as the standard netlist
parse function, but also accepts a blacklist vector of nodes to NOT
include when parsing the netlist