Added target argument to Mesh.set_map to tell it how many procs to map.

set_map still partitions the elements based on the factorization
of the element extents, but now preferentially uses factors shared
with the number of target procs to make sure the target fits nice
and evenly.  It then continues the map with the rest of the factors,
so the map file is valid even if a different number of procs are being
used.