documentation updates for Graph's protected property $vertices
removed the loop check for duplicated vertices in the add operation of Graph
fixed a bug in Dijkstra implementation where a recursion may not be stopped.
fixed a bug in Dijkstra's Algorithm where the nesting may become too much or the algorithm becomes highly inefficient due to full looping through the entire graph's vertices.

the fix here is to only check for connected vertices and stand-alone vertices in the graph are ignored by this implementation.

sorting is also done on the vertex's connections to find the next nearest adjacent ID.

Since we are getting the nearest adjacent vertex through the connections() array, we will remove the getMostAdjacentConnectionId(); method.

Signed-off-by: Sam-Mauris Yong <mauris@hotmail.sg>
Convert query objects to SQL using __toString().

The reason for this addition is out of sheer convenience, it is nice to
be able to pass a query object straight to the ->query() and ->command()
methods of the binding class without the need to call ->getRaw() on it.
Properly handle integer, float, boolean and NULL values in VALUES.

This change is needed to make it possible to insert non-string values
for the fields specified in an INSERT query. This query:

  $query->insert()
        ->into("Test")
        ->fields(array('a', 'b', 'c', 'd', 'e'))
        ->values(array('0', 0, NULL, true, false));

Is now translated into the following SQL code:

  INSERT INTO Test (a, b, c, d, e) VALUES ("0", 0, NULL, TRUE, FALSE)

In addition to that, values equal to FALSE were being stripped using
array_filter() which is not always a desirable behavior. The formatter
used for LIMIT had to be fixed to accomodate this change.
Allow duplicated fields in queries.

Stripping duplicated fields from queries is beyond the scope of the
query builder abstraction and, in certain cases, this may even get
in the way with silly, yet valid queries such as:

  SELECT name, lastname, name FROM Person

The removed code had also a bug preventing the list for VALUES from
having two or more identical values making it impossible to create
the following query using the query builder:

  INSERT INTO Dummy (Field1, Field2) VALUES ("value", "value")
Fix WHERE with integer, float and boolean values.

We can now pass integers, floats or boolean values without having the
query builder transforming them into strings in the resulting SQL.

This means that it is possible to write this kind of query:

  $query->from("Test")
        ->where('a = ?', "0")
        ->orWhere('b = ?', 0)
        ->orWhere("c = ?", false);

Which is now translated into the following SQL query:

  SELECT FROM Test WHERE a = "0" OR b = 0 OR c = FALSE

Instead of the previously wrong SQL code:

  SELECT FROM Test WHERE a = "" OR b = "" OR c = ""
Reduce code complexity of the RID validation.

As a bonus, the resulting code is also twice faster.
Translate NULL as "IS NULL" in the resulting SQL for WHERE.
Use one instance of the escape validator per query object.
Allow integer, float, boolean and NULL values in UPDATE.

The query builder now produces valid SQL with these type of values.

  $query->update('Test')
        ->set(array('a' => "0", 'b' => 0, 'c' => false, 'd' => null));

Is translated into the following SQL string:

  UPDATE Test SET a = "0", b = 0, c = FALSE, d = NULL
Merge branch 'beta-5'
Merge branch 'query-builder-fixes'
Enable code coverage report on Travis CI.
Remove leftover class still being tracked by mistake.

[ci skip]
Merge remote-tracking branch 'upstream/pr/122' into master

Conflicts:
	src/Congow/Orient/Algorithm/Dijkstra.php
	src/Congow/Orient/Contract/Graph/Vertex.php
	src/Congow/Orient/Graph.php
	src/Congow/Orient/Graph/Vertex.php
fixed binding test
resolving test with document methods

Conflicts:
	test/Binding/HttpBindingTest.php
fixed datatype test