Consolidate shared memory "addrs" and "offsets"
Consolidate shared memory "addrs" and "offsets"

Summary:
Before this change, we have two ways of representing locations in shared memory:
(a) the byte offset from the hashtbl pointer and (b) that value, shifted left by
one position. We would call the (a) form an "offset" and the (b) form an "addr."

The purpose of (b) was to ensure that the lsb is always 0, so that these values
could be distinguished from headers, where the lsb is always 1.

However, because all interesting locations in the heap are word-aligned, the lsb
of the simple offsets (a) already always have an lsb of 0, so we don't actually
need the (b) form.

This diff uses the (a) form everywhere, and uses the name "addr" for this
representation.

Reviewed By: nmote

Differential Revision: D24393641

fbshipit-source-id: 896ff918e9b8fe4c1a10b983b741872099f38a93

mroch/flow,facebook/flow,facebook/flow,mroch/flow,mroch/flow,facebook/flow,facebook/flow,mroch/flow,mroch/flow,facebook/flow,mroch/flow,mroch/flow,facebook/flow,facebook/flow