VideoCommon: Cache native vertex formats

We are used to have a 1:1 mapping of GX vertex formats and the native (OGL + D3D) ones, but there are by far more GX ones.
This new cache maps them directly so that we don't flush on GX vertex format changes as long as the native one doesn't change.

The idea is stolen from galop1n.
VertexLoaderManager is a namespace with Init and Shutdown functions.
Shouldn't we just change it over to a class and include it in one of our other VideoCommon classes?
Less global state ftw.