Give a build warning if a layout does not exist

Throw a warning if a non-"none" layout is specified but the corresponding
layout file does not exist.
Do the same for documents
Move layout validity logic to separate method
Add path of file requesting nonexistent layout
Fix up errors in CI build
Exclude excerpts from layout checks
Use `is_a?` instead of `class`
Remove 'none' as a valid layout
Merge pull request #2620 from alfredxing/warn-on-layout-nonexistent