code: private function getAnnotatedBinding(\ReflectionClass $class)
      {
          $annotations = annotationsOf($class);
          if ($class->isInterface() && $annotations->contain('ImplementedBy')) {
              return $this->bind($class->getName())
                      ->to($this->findImplementation($annotations, $class->getName()));
          } elseif ($annotations->contain('ProvidedBy')) {
              return $this->bind($class->getName())
                      ->toProviderClass(
                          $annotations->firstNamed('ProvidedBy')
                                  ->getProviderClass()
                      );
          }
  
          return $this->getImplicitBinding($class);
      }
docs: returns binding denoted by annotations on type to create
  
  An annotated binding is when the type to create is annotated with
  @ImplementedBy oder @ProvidedBy.
  
  If this is not the case it will fall back to the implicit binding.
  
  @param   \ReflectionClass  $class
  @return  \stubbles\ioc\binding\Binding