Get rid of cc_detail namespace.

Moved SFINAE tests to ComponentContainer class. This is so that we can
make the class a friend and use private encapsulation in components.