Choose the best name for a stable name

We already know that there are various compatibility symlinks
in dev/disk/by-id/*, so instead of matching the first alphabetical
one, use the one that we consider most stable. This avoids an issue
where compat symlinks are added at a later point, which causes
unstable names. The priorisation is done identical to
provisioner/recipes/bootdisk.rb

This also includes fixes for cciss devices.  These are special, because
ohai lists them as "cciss!c0d0", while they're actually under
/dev/cciss/c0d0, so we need to add mapping from "!" to "/" and back.