Ceated a more flexible lipsum generator

Summary: Ref T2903

Test Plan: Generated lipsum of number of lines defined by the user.

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin, AnhNhan

Maniphest Tasks: T2903

Differential Revision: https://secure.phabricator.com/D5690
use parse_url() for URI parsing

Summary:
We periodically have an issue with really long URLs hitting a
pcre backtracking limit (hhvm has a low limit configured due to historical
reasons).  Avoiding PCRE in the URL parser seems like a good idea.

Test Plan:
`arc unit` passes, but with the caveat that I've only run this
on hhvm so far; will arc patch it down to a mac shortly.  The concern is
whether parse_url groks svn+ssh and this may be PHP version dependent.

Reviewers: nh, epriestley

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D5726
Allow libphutil libraries to load arbitrary runtime code from extensions/

Summary:
Currently, users need to build a libphutil library in order to add runtime code to Phabricator. While desirable for larger applications, this is fairly complex and offputting, and users have a relatively low success rate with it.

Instead, make libphutil recognize an `extensions/` directory and load arbitrary code from it at runtime, so that installs can drop code into this directory without needing to build a library.

(The tricky part here is that we update the class map so that `PhutilSymbolLoader` can select these classes correctly.)

Ref T2971.

Test Plan: Unit tests.

Reviewers: vrana, btrahan

Reviewed By: btrahan

CC: aran, AnhNhan

Maniphest Tasks: T2971

Differential Revision: https://secure.phabricator.com/D5714