Refs #10280. Added class for rational number vector

It will be useful for implementing the translational part of SymmetryOperation, because values like 2/3 etc. occur and floating point math just makes comparisons etc. harder.
Refs #10280. Started writing unit tests for V3R
Refs #10280. Changed default constructor
Refs #10280. Finished unit tests, added documentation for V3R.
Refs #10280. Added parser for SymmetryOperation from [x,y,z] format.
Refs #10280. Added V3R constructor from integer vector
Refs #10280. SymmetryOperation identifier is derived from components

Internal matrix and vector are used to construct the identifier. This way it will be easier to store unique SymmetryOperation objects in the factory.
Refs #10280. Changed order of generated identifier.
Refs #10280. Added symbol parser into own class.
Refs #10280. Refactored SymmetryOperation and factory
Refs #10280. Changed python exports
Refs #10280. Updated documentation comments.
Refs #10280. Added query method to SymmetryOperationFactory
Refs #10280. Cleaned up SymmetryOperation.
Refs #10280. Updated documentation.
Refs #10280. Removed constructor-chaining from SymmetryOperation.
Refs #10280. Catching exceptions by reference.
Refs #10280. Fixing uninitialized value error.
Refs #10280. Added inverse() and less than operator.
Merge remote-tracking branch 'origin/feature/10280_introduce_translational_symmetry_operations'