Partially rewrite the current cURL-based HTTP client.

The HTTP client is now aware of session cookies returned by OrientDB in order
to identify an authenticated session.

Now instead of telling the client to reuse or not the underlying resource, we
can decide if each request should be treated as a whole new session. Starting
a new session resets any cookie previously returned by OrientDB, including the
session cookie.
Tweak timeouts for the HTTP client in the tests.
Remove branch whitelisting from our configuration file for Travis CI.
Merge branch 'httpclient_session' into beta-5
Start using Composer to manage dependencies.

Git submodules are still available since we don't want to force Composer on
users yet (it is still in development after all), but we have moved them in the
"vendor" subdirectory and configured them to match the same layout produced by
Composer to use a common logic.

If you had the submodules already initialized in your local clone under src/ you
will most likely have to remove them by hand:

  $ rm -rf src/Symfony src/Doctrine

We have also added an autoload.php file in the root directory of the repository
that is able to switch between dependencies fetched with Composer or by using
Git submodules. This file is used by both examples and the test suite.
Merge branch 'composer' into beta-5

Conflicts:
	.gitignore
Add two utility scripts to manage our dependencies.

The first one is used to initialize our dependencies using Composer or Git
submodules. Composer is the preferred method when no arguments are passed
to the script, otherwise users can decide which method to use:

  $ ./bin/initialize-dependencies.sh composer
  $ ./bin/initialize-dependencies.sh submodules

The second script is intended to be used to safely clean up the dependency
tree without breaking the directory structure that is needed to support Git
submodules.
Fetch dependencies on Travis CI using our new scripts.
Move the script used for code health reports in the bin/ directory.
Ensure utilities scripts are executed in the root of the repository.
Updated the README.
Fix parsing of DATETIME values when casting to DateTime.

OrientDB returns DATETIME values as strings with microsecond resolution using
a colon (:) to separate the microseconds part. PHP, on the other hand, expects
the dot character (.) for the microseconds part thus breaking our caster. As a
workaround we try to normalize this difference before passing the date string
to the constructor of the DateTime class.
Tweak again timeout for integration tests and move it to phpunit.xml.
Accept only DateTime or derivate classes to cast DATE and DATETIME.

It is better to fail early and notify developers when using invalid classes
instead of falling back silently to DateTime.
Allow more operations on fields of SELECT queries.

By relaxing the strictness of the previous query formatter we can now leverage
some nice features of OrientDB like SQL-like functions, filter methods applied
to returned values and chained fields on referenced objects.
Use a method to return the schema for a query object.
Merge branch 'beta-5' of github.com:congow/Orient into beta-5
started the setup for data types integration tests
added integration test for string type
started refactoring mismatches between orient data type and annotations
Added datatypes tests
Refactored responsabilities between mapper and caster