- 
Adam Barth authoredPreviously, these classes where in material.dart, which meant they could access private interfaces in that library. This patch moves them out into their own files so that they need to play by the rules of the public API. Fixes #5969 9f36737f