(SERVER-259) Improve validate-memory-requirements! error message

Without this patch the fatal error message given to the user when RAM is less
than 1.1 * JVM heap size is the following following:

    Not enough RAM. Puppet Server requires at least 2181MB of RAM.

This is a problem because it leads the user to believe they don't have enough
RAM.  They may conclude their only recourse is to add more memory when another
recourse is to decrease the configured maximum JVM heap size.

This patch addresses the problem by augmenting the error message to
specifically call out the JVM heap setting as a possible recourse.  The message
further tries to help the user by directing them to the JAVA_ARGS, -Xms, -Xmx
options, and the locations of the configuration files on Debian and Enterprise
Linux, the most common platforms.
Why is a def better than defn in this situation?  Would using a def change when the file is read from the startup phase of the lifecycle to whenever the variable is bound?

I rather like the predictability of the function semantics of, "memory is checked during the server startup phase when the function is called," compared to the def semantics, "memory is checked at some unknown point when the variable is bound."