Le tronc (ou trunk) désigne le code principal de Gecko, le moteur de rendu sur lequel sont basés tous les programmes de la fondation Mozilla (Firefox, Thunderbird et la suite Mozilla). C'est sur ce tronc que travaille la majorité des développeurs.
A l'approche d'une nouvelle version majeure, une branche (ou branch) est créée. Lors de la création de la branche, le tronc est gelé (freeze), ce qui signifie que les modifications du tronc sont interdites sauf approbation des responsables (cela afin de ne pas compromettre la stabilité de la future branche). Le code présent dans le tronc est alors copié en totalité dans la branche (tronc et branche évolueront donc en parallèle) et un petit groupe de développeurs est détaché pour peaufiner le code source de la branche jusqu'à la sortie des versions définitives. Lorsque le tronc est réouvert (donc la branche créée), les modifications du tronc peuvent reprendre normalement. Dès la sortie des nouvelles versions, le groupe de développeurs affecté à la branche retourne travailler sur le tronc.
Pour clarifier un peu tout ça, prenons des exemples concrets

>> La suite Mozilla 1.7.x est basée sur la branche Gecko 1.7, issue du tronc.
>> Firefox et Thunderbird 1.0.x sont basés sur la branche Aviary 1.0.1, issue de la branche Gecko 1.7.
>> Deer Park Alpha 1 (Gecko 1.8b2) et Alpha 2 (Gecko 1.8b3) sont basés sur le tronc.
>> Aux alentours du 26 Juillet prochain (si tout va bien

Différence entre nightly et release ?
Une compilation nocturne (nightly build) représente une image à un instant donné de l'évolution du code (soit du tronc, soit d'une branche). Ce type de compilations est destiné prioritairement aux développeurs et testeurs et non au grand public. Ces compilations sont livrées sans garantie de fonctionnement et chacun les utilise à ses risques et périls.
Une version officielle (release) au contraire a fait l'objet de tests préalables et a été validée, garantissant une certaine stabilité et qualité de fonctionnement. Ce sont les seules compilations destinées au grand public.
Différence entre alpha, beta et release candidate (RC) ?
Le cycle de développement comprend plusieurs étapes distinctes:
versions Alpha: Ces versions apparaissent au début du développement. C'est durant cette période que sont ajoutées de nouvelles fonctionnalités et que le tronc ou la branche concernée subit ses plus profonds changements. Les versions Alpha sont donc davantage sujettes à l'instabilité et déconseillées au grand public.
versions Beta: A ce stade, les fonctionnalités principales sont toutes définies et ne devraient plus évoluer. Les développeurs se concentrent alors sur la correction des bugs.
versions RC (ou Release Candidate): Littéralement, ce terme désigne une version candidate au statut de finale. Autrement dit, si aucun bug majeur n'est détecté, celle-ci deviendra la version finale.
Plus d'infos:
Le processus de développement expliqué par Asa Dotzler
La branche 1.8 expliquée par Mozillazine (en français)
La branche 1.8 expliquée par Mozilla Developer News
La roadmap expliquée par Brendan Eich (l'inventeur du JavaScript c'est lui

Cette même roadmap présentée par Mozillazine (en français)
En espérant clarifier un peu les choses

Si vous trouvez des erreurs, n'hésitez pas à les signaler.