Implement get_partition_number() to allow for easy testing and trap problems

This function now traps when the partition number is not a number or spans more than two characters. Since Relax-and-Recover does not support more than 9 partitions we are not creating another artificial limit. However if we find a better way to get the partition number from inconsistent devices (those that add a partition number directly to a trailing number), I am all for that.

This pull-request relates to #183 and #263