(#50) Decouple widget directive and controller instantiation (cleanup, widget loader spec)