Improvements Bundle

Standout changes are 
- Improved caching by separating memory from disk caching.
- Improve detection throughput by caching http headers (possible with the caching changes).
- Fixed bugs.
- Added PHPUnit tests.
- Added Ludovic's composer.json file.