On-surface synthesis of nitrogen-doped graphene-based nanoarchitectures : 0D nanographenes, 1D nanoribbons and 2D nanoporous graphene