added in Exception throwing if Contact Name contains semicolon (interferes with IO)
Put interfaces, implementations and tests in separate packages to make clearer
Added method to reset unique ID in ContactManagerImpl constructor