util: Add persistent lists as a useful general-purpose thread-safe data
structure.

This will be used to improve our storage management for float lists.
layout: Employ a persistent list data structure to avoid copying floats
all the time.

Improves performance on the maze solver significantly since this was
basically O(n^2) before.
auto merge of #3830 : pcwalton/servo/persistent-list-floats, r=kmcallister

r? @kmcallister