Allow "array" with type args to be used in XHP attribute declarations

Summary: This updates HHVM's parser to allow "array" with type args to be used in
XHP attribute declarations.

Reviewed By: @elgenie

Differential Revision: D1693455

Signature: t1:1693455:1416470523:0d308ca7567c7c95b9db45f3ae2d1843efad95d0
repo mode defer trait reqs enforcement until class creation

Summary: Followup to {D1690122}. When flattening traits, simply
 include the requirements in the preclass of the resulting using
 class, rather than attempting to do anything intelligent for repo
 mode. Then, when running in RepoAuthoritative mode, remove the
 assumption that only trait/interface preclasses are allowed to have
 requirements.

 If there's no significant perf impact, this probably makes more
 sense, given the possibility of non-unique (aka redeclaring)
 classes/interfaces that end up satisfying a requirement.

Reviewed By: @markw65

Differential Revision: D1693886

Signature: t1:1693886:1416530409:f40241dde10a1c8c077b2978f4d8e0438c777bdb