Text this: Channel Assignment Algorithms in Cognitive Radio Networks: Taxonomy, Open Issues, and Challenges