Caching programs added

Programs generated by different instances of BatchRenderers can now be
cached, so only one program is uploaded to GPU. This reduces
initialization time drastically.
Performance optimization of getBounds()
GeometryData introduced

Initial version.

BatchRenderer has been split into two classes: BatchRenderer and
GeometryData. Also batching has been introduced in BatchRendererWrapper
class.

@paitum, please give it a look and tell me if this are the changes you
requested. I’m still going to iron out few details here and there, but
just want to make sure I’m heading in the right direction :)
First working version officially using IGeometryData interface.

@Paitum, would be great, if you could give it a look.
Added caching to BatchRenderer
Examples moved to a separate sources directory
renderer_internal namespace removed
srcExamples directory added to project
Refactoring
Update README.md
Unused member removed
Refactoring
Demos fixed for refactored wrapper implementation
Update README.md
Refactoring

- using IGeometryData wherever possible
- get/set methods position moved to GeometryData
Update README.md
Update README.md
Update README.md
Merge pull request #2 from b005t3r/GeometrySeparation

IGeometryData interface (and its implementations) has been separated from BatchRenderer class
Generic texture accessors changed to protected

This methods should be used by subclasses for creating a more specific
accessors.