This patch is extracted from D96035. It adds simple non-allocating list class.
The list allows thread safe insertions. List items should be allocated
and deleted outside the list.
The implementation looks good. I left some inline comments with suggestions for names that more closely match that of the STL containers to make the class feel more familiar to those who are used to them.