Be less strict about loading directory sources
Historically Cargo has been pretty strict about loading directory sources by
ensuring that everything inside was a crate. This was intended to protect
against accidental misconfiguration by failing loudly rather than silently
returning fewer crates.
This has caused a number of issues, however:
* #4969
* #4811
* #3899
so it seems like this is too aspirational of Cargo
Closes #4811
Closes #4969