Add manpages for conversion tools

Summary: Last two. These are very minimal -- their usage really requires
a holistic description of the conversion process, for which I heavily
encourage readers to look at the HHVM docs site instead.

Reviewed By: @elgenie

Differential Revision: D1537420
Makes <<__Memoize>> work with arbitrary args

Summary: This is the last piece needed to make <<__Memoize>> a full replacement for DynamicYield.

For serialization, I chose to extend fb_compact_serialize for a couple reasons. The main reason is that it's nearly ideal for this purpose. It runs in one pass with a StringBuffer (as opposed to two passes one for length, one for serialization with fb_serialize). It also correctly handles differentiating falsey types and produces shorter strings than either fb_serialize or json_encode for faster lookup. The only two parts that were not ideal were the fact that it doesn't throw on error, and can't handle objects. Those are the two things I modified. I think I extended an existing pattern, but let me know if I should move the implementation somewhere common.

By the way, IKeyableObjectUtils does a pass through input arrays to look for serializable objects, copying the input array in the process. Once this is in, it would be interesting to see if IKeyableObjectUtils::serialze() could be turned into a wrapper to HH\serialize_memoize_param(). There are other places than DynamicYield that use IKeyableObjectUtils::serialize(), and this is bound to be faster.

Reviewed By: @jano

Differential Revision: D1526762