Add support for pre-built branches to benchy

Summary: Many times you will have already built a branch somewhere and you
want to use that build rather than having to rebuild everything to a place
that benchy knows about. This patch adds the ability to specify the location
of a pre-built VM so that this workflow is now possible.

This diff also updates the tab complete script to support tab completion
of paths as part of the VM. Run with -h to see an example of how to use
it.

Reviewed By: @jdelong

Differential Revision: D1646858
Add overflow info to is_numeric_string

Summary: When comparing numeric strings which overflow PHP detects overflow and falls
back to standard string comparison.

Fixes #1914

Reviewed By: @fredemmott

Differential Revision: D1659152

Signature: t1:1659152:1415142964:f4f12b72a5866d2df5b1407d6fd8c327ca5e415c
Fix return value annotation for openssl_x509_checkpurpose

Summary: Was supposed to return boolean on success or failure and only integer on error.

Fixes #4070

Reviewed By: @JoelMarcey

Differential Revision: D1660716

Signature: t1:1660716:1415202574:8911c0a9304e956e1f1790c7060b2ef430409b7c
Match PHP 5 backquote processing

Summary: In PHP 5 backquotes can be nested by escaping the inner pair.
(e.g. echo `echo \`echo foo\``)

Fixes #4078

Reviewed By: @JoelMarcey

Differential Revision: D1660472

Signature: t1:1660472:1415170658:cfa04549bbb32a3433b2991f0ac499a947ee3ad1