Fixed commands that check amount of ram on the OS.

I first added an additional exception that will run an OS X command to check the GB ram on the system if the first command (which works on Ubuntu/Debian) fails, rather than immediately defaulting to 1.

Then I then changed the definition of `gigsOfRam` so that it will return an integer instead of a string. The reason it needs to be a integer is it is used just a few lines later where it is compared against the integer `self.processors` to find the minimum of the two, defined as `self.simultaneousTasks`. When comparing an integer to a string in min(), the integer will always be selected.

Hence, on Ubuntu machines `self.simultaneousTasks` was always equal to `multiprocessing.cpu_count()` anyways, making the whole check of the ram irrelevant. With both these problems fixed, Ubuntu and OS X machines now work as the code was originally intended.

I also closed the multiprocessing pool in the execute() function because pools should always be closed when they are done to prevent memory leaks.

I've tested the changes on Ubuntu and OS X, but I'll leave it to Ben to merge this to the dev--stable branch.