XDG Base Directory Specification is now followed.
See globals.h for details.
With XDG respected, steamclient.so is dynamically
detected with a best-effort approach. SamRewritten
must dynamically hook into it at runtime, and must
use the running version, so now the git repo doesn't
need to be updated everytime steamclient.so updates.
Using the same steamclient.so for both app detection
and game launching causes stale shared object state to be
present in the child upon fork, so explictly unload the
parent's steamclient.so so we can get a clean one.
32bit and SteamBeta detection is not implemented at
this time, but can be in the future if there is interest.
Misc:
Disallow running as root
Wrap directory creation
Move most directory creation to main()
Fix some typos