Some improvements to the RegionDesc API

Summary: I started with the motivation of making it more efficient to search
arcs incident to a particular block, and then ended up cleaning up
some other stuff as well.

Reviewed By: @edwinsmith

Differential Revision: D1505074
Remove duplicate bindings

Summary: There were cases where we double bound config settings, which is wasteful. I have to imagine these were leftovers that were needed before we had `Config::IniName` and `Config::normalize`.

I left the ones that had custom getters and settings for `IniSetting::Bind`

Also, there are few other stragglers that I am going to look at for another diff. Particularly things like `AssertFrequency` and `WarningFrequency` which have `IniSetting::Bind` at the bottom of `runtime-option.cpp` but also have `Config::Bind` for the same settings towards the top.

Reviewed By: @ptarjan

Differential Revision: D1492543
Fix Freetype to look for ft2build.h first

Summary: In the previous configuration, it would find freetype2 for me, but then fail to #include freetype.h through the macro header include.  In this configuration, it finds ft2build.h goes along happily.
Closes https://github.com/facebook/hhvm/pull/3532

Reviewed By: @ptarjan, @sgolemon

Differential Revision: D1508208
Move shape class constant typecheck from declaration to typing

Summary: The check needs to know about available classes and typedefs so
it can look into class constants and see what the typedef's underlying
type is. This means we needed to have completed declaration before doing
the shape class constant check. However, it was placed directly into
declaration itself, and so was sensitive to the order in which classes
were declared, which is nondeterministic. Instead, move it into typing,
when we know that everything has been declared and is available.

Reviewed By: @gabelevi

Differential Revision: D1512071