[WIP] Appcache

Offline version.
Tips:
- Manage cache in Chrome: chrome://appcache-internals/
Possible refactoring as onerror, onabort and ontimeout are doing the same thing, except the message string.