[abstract interpreter] support containers

Summary:
Per title. Similar to D1268141 and D1262073. Since
our model for arrays already covers most of this,
just use that in general.

Also: some hardcoded support for copying operations.
This is pretty much explicitly wrong (copies the
reference, not the data), but it makes more unit
tests pass, so clearly the ends justify the means.

Also: this will end up treating `Set { 1, 2, 3}` as
if it is ordered.

Test Plan: Upcoming integration tests in a separate diff.

Reviewers: pad, julienv

Reviewed By: pad

CC: collingreene

Differential Revision: https://phabricator.fb.com/D1270354

Task ID: 4081629