Added publishTypes to @NgComponent/@NgDirective

Also implemented caching of directive metadata and implemented a temporary fix for http://dartbug.com/11960