Custom article collections for Middleman 3.1

TODO: Does this need to be supported in < 3.1?
Refactor current permalink code
Support custom frontmatter data in permalinks