Rework FileUtills::Get*Freespace().

This commit reworks FileUtills::Get*Freespace() and friends to use the
new Common namespace error handler code (in addition to returning the
proper errors), as well as reducing the amount of redundant code in
these functions.

In addition the GetByteFreespace() function (which is now the only
Get*Freespace() function to issue a system call) now has proper
exception handing for creating the needed data structure on linux
systems.