Colder code - performance improvement of parameter checking helpers

This is a fix for bug #848. Parameter names will only be checked for NotEmpty if the value is not compliant to the check at hand. This may not be the expected behavior when the code was first written but I think it's reasonable given that:
  - It's perf-optimized for the positive case.
  - The required checks can still be in place in the hot path without causing perf interference.

All tests passing.
Query: DRY up the async include tests
Query: Throw not implemented for un-recognized include expressions
Merge pull request #903 from aspnet/Checker

Colder code - performance improvement of parameter checking helpers
Adding ConfigurationSource parameters for InternalIndexBuilder and InternalForeignKeyBuilder
Remove NullLoggerFactory