Add BList

Still need to impl a few methods, but this is a good starting point.
So much similarity between these pairs, just s/back/front/ in each. I guess a macro could make them shared, but it may not be worth it. (And I don't know of another way to increase sharing.)