Ported ConstraintValidatorFactory.php to Silex/Pimple
- Type hint in Silex\ConstraintValidatorFactory constructor for container
- Modifed Silex\Provider\ValidatorServiceProvider to accept an optional
  'validator.validator_service_ids' parameter wich allows users to register
  custom validators.
- Added test to verify that if users registered ValidatorServiceProvider
  using optional 'validator.validator_service_ids' parameter then the new
  Silex\ConstraintValidatorFactory will be used instead of the one provided
  in  Symfony.
Removed Symfony\Component\Validator\ConstraintValidatorFactory altogether from ValidatorServiceProvider. Custom validators are now lazy loaded. removed obsolete test.
Registering a ValidatorServiceProvider can take a validator.validator_service_ids parameter which is now an associative array of aliases as keys and service names as values so that ConstraintValidatorFactory can lazy load the validators.
SecurityServiceProvider now registers a UserPasswordValidator if ValidatorServiceProvider is registered.
Added custom constraint and validator to properly test the ConstraintValidatorFactory.
Changed deprecated namespaces
Backward compatibility for UserPasswordValidator
Changed mapping of 'validator.validator_service_ids' to use ternary operator
Minor refactoring
Separating validator service names and instances
Incorporated changes suggested by @Igorow. Separating $this->validators (instances) and $this->serviceNames.
Changed constructor type hint to Pimple
merged branch alexkappa/master (PR #628)

This PR was merged into the master branch.

Discussion
----------

Ported ConstraintValidatorFactory.php to Silex

Included a modified version of `ConstraintValidatorFactory` to Silex for use with custom constraints.

Since Silex comes with `ValidatorServiceProvider` built in, I guess it makes sense to include this, in case users might want dependencies with their custom validators.

Usage would be:

```php
// Custom.php
public function validatedBy()
{
    return 'my.validator.custom';
}

// index.php
$app['validator.custom'] = $app->share(function ($app) {
    return new CustomValidator();
});
$app->register(new ValidatorServiceProvider(), array(
    'validator.validator_service_ids' => array(
        'my.validator.custom' => 'validator.custom'
    )
));
```

Commits
-------

c4466a1 Changed constructor type hint to Pimple
fd72c6a Incorporated changes suggested by @Igorow. Separating $this->validators (instances) and $this->serviceNames.
fa15389 Separating validator service names and instances
0c3234d Minor refactoring
83266af Changed mapping of 'validator.validator_service_ids' to use ternary operator
278c5e0 Backward compatibility for UserPasswordValidator
4073445 Changed deprecated namespaces
4d8956f Added custom constraint and validator to properly test the ConstraintValidatorFactory.
b45b4fb SecurityServiceProvider now registers a UserPasswordValidator if ValidatorServiceProvider is registered.
70c1e36 Registering a ValidatorServiceProvider can take a validator.validator_service_ids parameter which is now an associative array of aliases as keys and service names as values so that ConstraintValidatorFactory can lazy load the validators.
77af56b Removed Symfony\Component\Validator\ConstraintValidatorFactory altogether from ValidatorServiceProvider. Custom validators are now lazy loaded. removed obsolete test.
423138a - Type hint in Silex\ConstraintValidatorFactory constructor for container - Modifed Silex\Provider\ValidatorServiceProvider to accept an optional   'validator.validator_service_ids' parameter wich allows users to register   custom validators. - Added test to verify that if users registered ValidatorServiceProvider   using optional 'validator.validator_service_ids' parameter then the new   Silex\ConstraintValidatorFactory will be used instead of the one provided   in  Symfony.
eaf0af2 Ported ConstraintValidatorFactory.php to Silex/Pimple