OK, I've tested the two following helper classes against all the platforms with the necessary #if's to unify all file and reflection requirements by the solution

* Utilities - FileHelpers.cs - built from all the references / code snippets for files used throughout the codebase in to a single class
Centralised helper classes for #1640
(Only changes that are included is a renamed GetFilename function and other minor changes suggested by @tomspillman)

* Utilities - ReflectionHelpers.cs - built from all the references / code snippets for reflection used throughout the codebase in to a single class

Note all code present in the classes come directly from implementations in the MG codebase.  No new additions added (unless is was for refactoring)

Next step is to replace current implementations (moved to these classes) in the MG codebase and get rid of a whole load of #ifs
Fixed missing || on #if for IOS || MonoMac
Removed unnecessary comments from reflection helper functions
Cleaned up comments from FileHelpers.cs.
Only informative comments left which explain some implementations
Found offending missing namespace, fixed for MonoMac
Had to reorder Windows_Phone & WINRT #ifs as Windows Phone project now has both
Merge pull request #2488 from DDReaper/Centralised_helper_classes_for_#1640

Centralised helper classes for #1640