Added functional header; removed incorrect assert.
Added functional header; removed incorrect assert.

Added the functional header to ensure the intrusive list has access to
the various standard functions it uses. It was working without this
previously completely by accident because the places that used it
happened to also include the correct headers.

Removed the assert in insert_before and insert_after. It is technically
legal to call them and supply an iterator that points at the end, and
the in_list function is not meaningful when called on those objects.

Tested on Linux.

Change-Id: Ie604c228e472d74023bef17af6a6ee553c3aec31

google/fplutil,google/fplutil,google/fplutil,google/fplutil,google/fplutil,google/fplutil