SpoonTemplate: basic support for objects

Add support for objects in SpoonTemplate. This will help us integrate Doctrine ORM in Fork (without needing to change template engine at the same time). I have also added integration tests for the SpoonTemplate functionality that I changed.

- [x] add integration tests for all changed code (debug and non debug mode)
- [x] objects properties as variables. (->getProperty())
- [x] iteration over array fetched from an object
- [x] iteration over an array of objects
- [x] iterations over objects with ArrayAccess (containing array's or objects)
- [x] cycling in all types of iterations
- [x] first and last options in all types of iterations
- [x] options on object properties (->isProperty() with fallback to ->getProperty())

Note, this is not the cleanest code, but I didn't want to refactor in the SpoonTemplate code itself, since I don't know it that well and I don't want to break stuff. I've added integration tests to support this code.

There is a a little over 80% code coverage on the SpoonTemplateCompiler using these tests.