Move to PHP5.4, fix bugs and add tests

Not ready to merge, 2 tests to fix.
Magic numbers everywhere + fuzzy variable names = really hard to read code :/

Why not using `$haystack`, `$needle` and `$differencesCount` as stated in the docblock and `$needleLength` and `$haystackLength` ?