Throw a warning if a layout does not exist

Throw a warning if a layout is specified in a `Convertible` or `Document` but the layout file (in the `_layouts` dir) does not exist.

Should address #2251 and #2583.
This is all very complicated. Can you put it in a method which encapsulates this? :frog: