Create a LayoutReader class to read layouts
Refactor the LayoutReader class
Sort methods from most important to least important

This idea is based on the concept of a newspaper. The most important
things such as the headlines and the major details of the story at the
top. This translates to code in that the public API and the more
important private methods are at the top of the file. The more detailed
information (or methods, in the code) are further down, so that if
you've gotten all you need out of the code up to a certain point, you
don't need to keep reading anymore.
Move layout tests from site to its own file
Remove Site#read_layouts
Rename `with` to `within`

Thanks @parkr
Wrap the LayoutReader in the Jekyll module
Merge pull request #2020 from jekyll/refactor-layout-reading