Move disabled unit tests to runtime/test.

Summary: There were a number of unit tests under test/ext/test_cpp_base.cpp that were disabled because they were a part of TestLibEventServer.  I've moved them over to runtime/test and converted them to gtest.

Reviewed By: @markw65

Differential Revision: D1722753
Add Hack typing to array_keys

Summary: There's also a diff for `array_values` forthcoming. The resultant hack errors all look reasonable.

Quirks found:

1. `array_keys(Set {'foo'})` doesn't typecheck, since Set doesn't implement KeyedContainer. Use `array_values(Set{'foo'})` instead.
2. `array_keys(shape('stuff' => 'morestuff'))` doesn't typecheck, and possibly never will.
3. `array_keys('foo')` logs an error and returns `null`. I assume we're okay with this.

Reviewed By: @dlreeves

Differential Revision: D1661290

Signature: t1:1661290:1418145186:2ead1ade24806ea0a1923a1534f8f6c0dcf178b5