criteria: fix issue #2157 and added tests

See the discussion here:
http://forum.phalconphp.com/discussion/1479/multiple-joins-in-oo-notation-fail

From what I saw, the problem was that the `current_joins` was merged with the `join` array instead of appended, so it resulted in something like this:

```php
array(
    //first join
    0 => array(
        'type' => "LEFT",
        'conditions' => "...",
    ),

    //all the following joins
    'type' => "LEFT",
    'conditions' => "...",
)
```

instead of

```php
array(
    //first join
    0 => array(
        'type' => "LEFT",
        'conditions' => "...",
    ),

    //all the following joins
    1 => array(
        'type' => "LEFT",
        'conditions' => "...",
    ),
)
```

I don't know how to copy a zval and I'm guessing I couldn't edit `current_joins` directly, so to avoid editing too much code I simpy added an array of array that can be merged with `current_joins` or copy-written on `merged_joins`.