Institute namespaced directory structure

* Split `algoliasearch.php` file into a namespaced directory structure:
 * `src/AlgoliaSearch/AlgoliaException.php`
 * `src/AlgoliaSearch/Client.php`
 * `src/AlgoliaSearch/ClientContext.php`
 * `src/AlgoliaSearch/Index.php`

* Moved tests into namespaced `tests/AlgoliaSearch/Tests` directory

* Created `tests/AlgoliaSearch/Tests/AlgoliaSearchTestCase` that contains helper functions (`containsValue(...)` and `safe_name(...)`)

* Changed test `setUp()` and `tearDown()` methods to protected 
 * Must be protected to override `PHPUnit_Framework_TestCase` protected methods 

* See `protected function setup()` and `protected function tearDown()` in https://github.com/sebastianbergmann/phpunit/blob/master/src/Framework/TestCase.php

* Moved class fields to be declared at the top of the class for readability

* `AlgoliaUtils_request(...)` is now a method of `Client` as `Client::request(...)`

* `AlgoliaUtils_requestHost(...)` is now a method of `Client` as `Client::doRequest(...)`