Base: Enhance usage of ServiceContainer by getService() method

Using dependence injection may make magic function __get() and
AbstractAutoNewInstance useless: inject and then getService().
Validator: Split class ConstraintContainer out from Validator