Band Gap Engineering via Edge-Functionalization of Graphene Nanoribbons