Improve the property accessing API of Class.

Summary: Affects Class methods getDeclPropIndex(), findSProp(), getSProp(), and
zGetSProp(). They were taking two boolean arguments by reference and setting
them: visible and accessible.

visible is unneeded. It was set iff the property existed, but that could be
checked against the return values of those functions (either "value == nullptr"
or "slotIdx == kInvalidInd").

That left returning a some representation of the property (either a Slot,
TypedValue*, or RefData*) and the accessible flag, which I turned into a struct
templated on the property.

Reviewed By: @jdelong

Differential Revision: D1708784

Signature: t1:1708784:1417282914:1782c28704245b9b2a50520936dcabc155e13a77