SI-5923 instantiate targs in deferred macro applications 

Supersedes the incorrect fix to SI-5923, which has been merged into trunk in https://github.com/scala/scala/pull/1844. See https://issues.scala-lang.org/browse/SI-5923 to learn more about the problem, which is now fixed.

Submitting this against 2.10.x, since the fix brings a significant feature on the table, which I wouldn't like to delay until 2.11. For instance, Play could use the fix to completely eliminate serialization boilerplate (http://mandubian.com/2012/11/11/JSON-inception/) /cc @mandubian.

Even though the fix per se doesn't bring binary incompatibilities, it might cause source incompatibilities, namely: materialization macros, whose usages would compile under 2.10.2 wouldn't compile under 2.10.0 and 2.10.1. Not sure whether that's acceptable, but it's definitely worth a try.

Review @paulp @retronym @adriaanm