lots of little fixes around the place to get the partition and palcer to bloody well work

starts with adding graph and machien to partitioner builder, so that it can be sent down to parittioner and palcer placer algorituhm so that it can be initlised

changed the placers so that they have a try_placement method so that partitioning can use it.

made partitioner and placer have a complete placements tracker. and allows front ends to call it if they dont want to repeat the work