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.
No, there may be ~100 map lookups per game. This is only a second level cache to map multiple vertexloaders to one nativeVertexFormat. The speedup is because we don't flush on vertexLoader changes anymore but on nativeVertexFormat changes (which don't need this map lookup).