Implemented client-side caching, closes #6

- [Model] Added `etag` property
- More verbose error messages when unable to create cache dirs
- require bootstrap.php -> Gizmo\Silex\Bootstrap::app()