Fix crazy stupid
Fix problems with age display name formatting

- Age User Name and Age Instance Name are equal in the case of some child
  and public ages. If they are, only return one of them. Don't return
  "Ae'gura Ae'gura"
- Changed to return plString instead of a pointer to a temporary buffer
  that immediately goes out of scope
Implement plShaderAssembler
Support negative substring indexes from the right side of the string
Merge pull request #317 from GPNMilano/shaders

Implement plShaderAssembler
Merge pull request #320 from zrax/negative_substring

Support negative substring indexes
Merge pull request #308 from Hoikas/display-names

Age Display Name Fixes
Don't use CPUID call on targets that don't support it
Merge pull request #323 from zrax/cpuid_check

Don't use CPUID call on targets that don't support it