Useful Update to Settings Parser: Scalars & Easy Converting

This pull request involves refactoring the code to use templates & specialisation, instead of overloads, which reduces code duplication, and allows easier changes to be made.

The switch to a template based system was chosen to allow reading of comma separated strings into a vector (which type is determined by the user). It also allows writing of vectors to the file.