Use combined getter/setters for virtual & hidden properties.

The rest of CakePHP uses combined get/set methods, follow that pattern
here as well.

Add test cases as well.