Allow placeholders in permalinks

Allow the regular placeholders (`basename`, `path`, `ext`) in permalinks. This is useful for setting permalink rules in frontmatter defaults (for example if I want my SCSS files in `/assets/scss/` to output to `/assets/css/`).

Changes will only break functionality for people currently using `:path`, `:ext`, `:basename`, etc. in their permalinks. Permalinks without any of these special symbols will remain the same.

Ref. #2475, #1712.
This smells of duplication!