Introduce memory heuristics

This initial implementation of memory heuristics calculates default
maximum heap size and default permgen size based on:

* the application's memory limit as provided in an environment
  variable

* weightings configured for the buildpack in a YAML file

Validate the memory limit and the weightings.

[#49694523]
Merge 49694523-default-sizes-formula to master

[Completes #49694523]