Fixes #5137. Added Elgg_EntityDirLocator.
Using InvalidArgumentException instead of Exception.
Fixed test.
Made getLowerBucketBound private. Testing the only the public API.
Merge pull request #5156 from brettp/pr-5137_user_dir

Fixes #5137. Added Elgg_EntityDirLocator.