Simplify Book.load function
Don't use segment.search for iterating segments
Include getSegmentById lookup in getContainingSegment
Address review commits, and syntax nits