moved some helpers into internal namespace
renamed Platform::GetHandle() to Platform::GetID()
Removed `Platform::GetPlatformByID` and moved its functionality into `Platform::New`.

`New` will only ever construct a wrapper for a given platform if there isn't one for the platform already, otherwise it will return the wrapper constructed earlier.  Wrapper objects are subject to GC, in which case `New` will again construct a fresh instance of the wrapper.