Support for List and Map

Thrift supports nesting and so does this code. It is recursive.