Fixed data type errors when filtering integer column with LIKE statement

Tested on MySQL, PostgreSQL, SQLite, MS SQL Server and Oracle (http://sqlfiddle.com/#!8/cd1eb/1/0)
Merge pull request #23 from tortuetorche/patch-1

WIP: Fixed data type errors when filtering integer column with LIKE statement
When filtering, we need to specified the max size of the column to correctly casting them.
Fixed columns casting for Oracle and PostgreSQL when filtering.

Check each column type and if it's a string set its max size instead of the default 255.
Because PostgreSQL and Oracle don't allow to cast CHAR type without a max length parameter.
Missing right parenthesis when searching with case insensitive
LOWER SQL function only works on text/varchar data type column

So we need to use it after casting the column to CHAR.
Tidying up codes and removing useless comments
Refactoring column type and max column length detections

... in a more Laravel way.
Merge pull request #24 from tortuetorche/patch-1

Fixed data type errors when filtering integer column with LIKE statement. Act II
fix #26