Mapping changes to support persistent blockstores.
Quite simple actually. In ptopgen we add all persistent stores, which are identified by having a non-zero lease_idx. To ensure they are only matched up with the correct virt_blockstore, we add a feature "bs-lease-NN" where NN is the unique lease index with weight 1.0. In vtopgen, when a request is made to map a persistent store, we first verify that the experiment pid matches that of the blockstore's lease (this is a fer-now simple check which is actually redundant as we make this check in the parser too) and ensure that the blockstore is not already mapped (indicated by the blockstore_state entry having size==0) and then we emit an entry with desire "bs-lease-NN" and weight 1.0. Most of the file changes were actually to get the "preassign" flag to vtopgen forwarded into the various libvtop modules so that I can check it and not perform the permission/size check if it is set.