Enabled some functional tests now that end-to-end scenarios work and fixed bugs

Or: How I Learned to Stop Worrying and Love the test TODOs,

We had some functional tests that were not running waiting on Migrations support for:
* Candidate keys
* Sequences
* Default values

These are now enabled. Fixed two bugs while doing this:
* Double-dispatch was not being performed for default value SQL gen resulting in inccorect literal generation
* Not all places that needed to check for whether or not a property is a key were updated to support candidate keys.
Fix break that made SQL Server keys non-clustered by default

Or: Nuclear collapse of the tri-valued cluster bomb

Issue #911
The clustered annotation is now SQL Server specific and default to null, meaning not specified. The Migrations database builder does not have the concept of not specified and was interpreting null as false. This resulted in keys being created explicitly as non-clustered. This change makes null be treated as clustered by default to revert the break, but note that the core/Migrations difference in how clustering is supported still needs to be addressed--see issue #879
Handle UseRequestServices() no longer being called in Startup.cs
We're moving away from this being called explicitly in Startup.cs. Adjusting to new pattern being used in other middleware.
Use consistent logger names
Ran code cleanup
Commands: Log
Commands: Add more tests