Fix Str::contains(), startsWith() and endsWith() with empty needles.

The behavior in these cases has been unified:
- return false
- no longer produce warnings
Optimize Str::endsWith()
Docblock and code uniformization in Str class
Use original key value when updating models.

This is necessary in case the primary key was changed.

Fixes #2414.
Fix failing tests.
Add additional unit test for #2414.
Fix expectations for mock objects.
Merge pull request #2695 from franzliedke/patch-16

Use original key value when updating models.
Change __call target.
Resolve from container again in meantime while figuring out issues.
Fix bug with setting save keys.
Merge branch 'str-class' of https://github.com/vlakoff/framework into str-helpers
Adding another test to string tests.
Allow all future minor releases of Monolog.
Rename variable in Closure.
Fix test for HHVM.
Fix HTML dump from Artisan console.
Update change log.
Check for empty string.
Check for file existence.