Improve YarnAllocator's parsing of "memory overhead" param

* let it be specified as a fraction of the executor memory
* add/generalize some utilities for parsing "memory strings" that are found around the Spark codebase.