Can I save dragon souls or do I have to spend them before the next dragon will attack? It seems that I haven't seen a dragon in ages and I wonder if it is because I still have an unspent dragon soul?
You can. You need to manually unlock new shouts so they can be saved.
Dragon encounters, AFAIK, are totally random - I've got a stockpiled soul and found a dragon.