Db\Sql - cleaning code duplicates

moved to functions :
 - resolving columns (```AbstractSql::resolveColumnValue```)
 - resolving ```$this->table``` (```AbstractSql::resolveTable```)
 - resolve ```$parameterContainer``` (```AbstractSql::resolveParameterContainer```)

```Insert``` reorganized because :
 - for using common method for resolving columns
 - use of ```$columns``` and ```$values``` ​​is redundant, ```$columns``` only is enough

```AbstractSql::processExpression``` and ```AbstractSql::processSubSelect``` : do more readable

Added new commits (step 6 - step 9):
 - delete dependency between ```$driver``` and ```$parameterContainer``` for ```process...``` methods.
 - move prepareStatement() and getSqlString() to AbstractSql because it duplicates in many places
 - AbstractSql::processExpression() should return string and paremeters push to ```ParameterContainer``` directly - this remove excess ```ParameterContainer::merge()``` calls and simplificate code
 - some code optimization