New Types

Made new types for different keys. Will fix other functions later on
Turned exit(1) to throw(1).
Gave SymAlg a virtual destructor
And something broke key generation