"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
Revert "Refactor the parsing and processing of configuration options ... just a bit ..."

Summary: sadpanda

In order to get some more local production testing with this refactor, this reverts commit:

//Remove ini refactoring parameter artificat//

... and subsequent commits directly based on this one

//Don't warn if HDF files don't end in .hdf//
//Remove ini refactoring parameter artificat//
//migrate many callsites from Config::GetFoo to Config::Bind//

**Light at end of tunnel**

These diffs will probably come back as one big diff that has been more thoroughly tested (along with another diff for tier overwrites that hasn't landed yet).

Reviewed By: @markw65

Differential Revision: D1554807