Add FrameworkContext and FrameworkConfig

Allow RelOptCostFactory to be replaced.  Make getPlanner() cleaner by using configuration object and builder pattern.