Add getVar()/setVar($val) method functionality

- Add getter and setter method functionality
- Can now implement `getVar()` and `setVar()` either by convention or if implemented. See README for more detail.
- Moved `__call` to magic methods
- Implemented `__isset` for interoperability with libraries like Twig
- Moved `reference(s)/embed(s)` key to contants `DATA_TYPE_REFERENCE(S)/DATA_TYPE_EMDED(S)`
- Add missing documentation
- Fix failing tests