Bifunctional scaffolds as templates for synthetic combinatorial libraries