Simplify how `hh_client` finds the root

Summary: This used to do very different things depending on if you
specified a root to `hh_client` or not, including different error
messages. I think it makes sense for it to climb up the directory
hierarchy same as if you don't specify a root (see github task), and it
also makes the code cleaner.

Fixes https://github.com/facebook/hhvm/issues/3643

Reviewed By: @int3

Differential Revision: D1682933

Signature: t1:1682933:1416006291:3bf378e5a19598d587e35371f909e064067326dd
unparse dynamic new

Summary: We currently parse new as id*exprlist*exprlist so we can represent
dynamic new only as new *Unknown*. This diff parses it as expr * expr list * expr list
and converts it back into an id during naming

Reviewed By: @paroski

Differential Revision: D1674986

Signature: t1:1674986:1416011812:ddac5e57292e9f7f135d5d502818b0d64cd30eb4