"arraykey" type

Summary: The union type of int and string is useful because it is currently the
type of keys for collections and arrays. To allow users to express this
type I am adding an arraykey type to represent this concept.

Reviewed By: @elgenie

Differential Revision: D1544844