Platform differences file: platform.h to avoid #ifdef clutter (prelimina...

...ry)

This is not yet used anywhere, and I can't do much testing without having access to Windows and Mac envs but I hope we can start using it instead of #ifdefs scattered all around the code base.