Phalcon\Session\Bag::__get() returns by reference

Close #1895
Test case for #1895
Updated CHANGELOG
Updated test cases
&__get() should create a property when it does not exist
Use object handlers in Phalcon\Session\Adapter
Add remove() to Phalcon\Session\BagInterface
BP_VAR_W/BP_VAR_RW should not return NULL
Optimized Phalcon\Session\Bag