Enable default config values with direct solid invocation
Default config values were broken on solid invocation. This fixes, and re-organizes some of the core flow. Now, we "bind" a DirectSolidExecutionContext into a "BoundSolidExecutionContext", which has its resources and config validated, and has the solid definition.
Issue tracking: https://github.com/dagster-io/dagster/issues/4216
Test Plan: Added additional unit tests for default config
Reviewers: alangenfeld, sandyryza
Reviewed By: alangenfeld
Differential Revision: https://dagster.phacility.com/D8133