Initial implementation of inject.dart support (BindingAnnotation)

BindingAnnotation support has been added, meaning that declarations now can have several metadata as long as it only has (at max) one BindingAnnotation. If a declaration has more than one BindingAnnotation an ArgumentError is thrown. BindingAnnotations are also the only type of metadata used by dado to define bindings.
As an easy to use BindingAnnotation, Named was created by extending BindingAnnotation and using a String as value (following Guice and other DI frameworks). Tests have been updated to use Named instead of const Strings.