mesa: move fixed function vertex program builder from tnl to core mesa

Also unify caching of fragment and vertex programs in shader/prog_cache.c`

Brought across from gallium-0.2
17 files changed