Introduce Boost.Predef
Merge branch 'predef'