Read/modify/update optimization on properties

Looks like it is sometimes possible to eliminate calls to update_property because read_property does not separate the returned value.

The idea is described in [this test case](https://github.com/sjinks/phalcon-kernel-test/blob/master/testbed.c#L73) and is implemented in `Phalcon\Mvc\Router\Route::construct()`.

The result is:
  * directly saved 80 bytes of RAM (amd64)
  * -2 or -3 variables tracked by the MM
  * eliminated call to update_property.

If you are OK with this optimization, I think there are places where this can be implemented.