Add test for some remove/replace failure cases.

-- Rework main module to throw exceptions rather than exit.
-- Test that a drive can't be removed from an already degraded array.
-- Test that a drive can't be replaced into an array if it doen't match
one of the existing drives.