Fix parser to allow "type" and "newtype" to be used as typevars

Summary: HHVM's parser was not allowing "type" and "newtype" to occur as typevars
within typelists (ex. "function f<Type>() { .. }"). This diff fixes the
parser appropriately and adds some basic tests.

Reviewed By: @jdelong, @elgenie, @JoelMarcey

Differential Revision: D1645228
Refactor debugger tests

Summary: We had some debugger tests that were setup to run in
server mode. This was a superset of what was required to run
server mode tests, so I refactored it, and created a small
stub for server tests.

Reviewed By: @ptarjan, @bertmaher

Differential Revision: D1644913

Signature: t1:1644913:1414610120:a48a422643821e3b4fcbd39fa3f9c2bad8f88721
Always use RuntimeOption::SourceRoot to resolve repo-auth lookups

Summary: SourceRootInfo::GetCurrentSourceRoot() is used to find the
DocumentRoot, and in RepoAuthoritative mode its also used to specify
the root relative to which all the files were compiled.

Normally, in RepoAuthoritative mode, the DocumentRoot would be the same
as RuntimeOption::SourceRoot, and so everything seems to work.

In FastCGI mode, the transport can override the DocumentRoot; but we
still need to lookup files in the repo relative to the SourceRoot.

Reviewed By: @edwinsmith

Differential Revision: D1638371