convert memory totals to strings before parsing

Previously, the memory.memtotal fact was assumed to be a string, and was being
parsed as such. However, there are cases when the fact will be a number, which
would break memory_in_gigabytes().

Instead, convert the argument to memory_in_gigabytes() to a string before parsing.
Merge pull request #2662 from beav/memory-in-gb-as-string

convert memory totals to strings before parsing