Add module Base.Meta with some metaprogramming tools
Merge branch 'with-meta'

Supersedes and closes #1755.
Closes #1576.