Fix vector erase object release bug

fix cocos2d::Vector::eraseObject function will release object that is not contains in the vector.

for example:
```c++
SomeClass* objA = SomeClass::create(); // retain count is 1
SomeClass* objB = SomeClass::create();
SomeClass* objC = SomeClass::create();
{
    Vector<SomeClass*> array1;
    Vector<SomeClass*> array2;

    // push back objA 3 times
    array1.pushBack(objA); // retain count is 2
    array1.pushBack(objA); // retain count is 3
    array1.pushBack(objA); // retain count is 4

    array2.pushBack(objA); // retain count is 5
    array2.pushBack(objB);
    array2.pushBack(objC);

    for (auto obj : array1) {
        array2.eraseObject(obj);
    }
    // objA retain count is 2, since eraseObject will release it even it's not contains in array2
}
// objA retain count is -1 after array1 pop stack, application will assert here
```