Molecular diversity techniques for chemical databases