Work when XDG_CACHE_HOME unset

Actually 3 separate changes bundled (sorry!).

Don't force the user to use gcc which they may not have and/or want.

The data array is only MAX_LINE_LENGTH characters long (and indexed from 0).

Use ~/.cache when XDG_CACHE_HOME is unset.