[SPARK-1930] The Container is running beyond physical memory limits, so as to be killed

Docs are pretty good, we may add a little bit to explain this memory doesn't go into the heap.  If you want I can help you with this.

And actually it looks like it doesn't properly add it as non heap memory for yarn 2.4 and >.  Would you mind fixing that here also. Look in the Client for yarn stable at calculateAMMemory.  We could also file a separate jira to fix this.

As far as the 3 configs, I am actually thinking we don't really need the general spark.yarn.container.memoryOverhead config though.  We can do the same thing with the other 2 (have them default to 384). Using just the 2 configs follows the general pattern that other spark configs take they just have the individual configs (like executor/driver configs).  thoughts or objections?