We could split the OptionParser construction into a separate function so that the completion stuff could obtain one (although it would be another copy). It would be really nice to have a completion implementation that requires no maintenance burden as the remainder of beets changes.