Changed property visibility to protected

The main reason being to allow QueryBuilder to be subclassed — for example so that we can fix issues like problematic shallow cloning locally and use them without having to wait for a pull request to be merged.