Bunks

implements changes to the bunk model and a bunk selector interface.

@allenwebb can you comment on whether this needs to be cleaned up or is ready to be merged in? Sorry I completely forgot about this until now.