[rebase] blackbox and whitebox macros

rebase of #3001

Documentation: http://docs.scala-lang.org/overviews/macros/blackbox-whitebox.html
Depends on: https://github.com/scala/scala/pull/2994. 
Review: @retronym @adriaanm