Good question.
First of all, the appindicators are not Unity specific in any way. Actually, they run just as well on Xfce or KDE. It's very, very, simple to use. You'll create an indicator object, set the name of icons to use when it needs attention, etc, and simply attach menus to it. The indicators are then sent over dbus and properly displayed in a manner suitable for the current desktop environment. In Unity, Gnome Shell, Xfce and LXDE, it'll be displayed as GTK menus, and in KDE it'll be displayed as Qt menus, etc. Very neat. You can find more information about it here: http://unity.ubuntu.com/projects/appindicators/
In the right pane of Glade, you have a Signals page under Properties. Here you can simply type the name of the method to use as handler for that signal. In your code, you'll just create a gtk.Builder object, load the XML that Glade produces and use the gtk.Builder.connect_signals method to connect all your signals to their methods. This means you can use Glade interfaces in almost any programming language. Since that is so easy, and since languages are different by nature, it makes little sense to add coding to Glade itself. For coding Python (and other languages), I will recommend having a look at Geany ( http://apt.ubuntu.com/p/geany). It is a very good editor/IDE.
Other things in Unity are so new, there is little documentation, except as code examples. Some of the APIs are just now becoming stable, such as for Scopes and Lenses, which weren't even called that a little while ago. As a beginner, I'd wait a little bit before looking into those things.
The entries on the launcher, are actually just referred to as LauncherEntry in code, and it can use a progress bar, a counter and QuickLists. I haven't actually coded that myself, but this page has an example and it seems very easy, like the rest of the Unity APIs: http://bazaar.launchpad.net/~unity-team/libunity/trunk/view/head:/examples/launcher.py
You ask two questions in one, really. But let me begin by saying that there is a reason why we call it GNU+Linux distributions. Ubuntu distributes free software that is made by other people. What software to use and how to use it, is up to Ubuntu, whereas the projects themselves have their own decision making processes.
For things like Unity, that is basically a Canonical product, Canonical has a large role in decision making. But Ubuntu is much more than that. Firefox, for instance, is maintained by Mozilla, so in that case, Mozilla makes most of the decisions. It's like that for lots of applications and programs. It's usually the ones who make the software who makes the decisions. Based on how that works, Ubuntu chooses what software to use. It would be legal to take software, like Firefox and make a new project out of it in order to become "decision maker", but that very rarely happens in reality. When there is a major dispute over the direction of which a project is headed, it can be forked into two different applications. That would also mean splitting the responsibility of decision making and maintaining the software, which is a big job. Also, if the software is very good and the project is very poorly administrated, it can happen, as was the perceived situation around OpenOffice.org, leading to LibreOffice, for instance.
So, since Unity is Canonicals project, they're in charge. But that doesn't mean that other opinions aren't valued and welcomed. They are. Canonical is at the center of it, but it's still a community project. But if the community splits into more than one opinion, and you have to have only one solution, then Canonicals opinion will be the final word. Usually, though, there is a best solution that people can agree on.
For general decisions about the direction Ubuntu is headed and what to focus on, there is a developer summit right after the release of one version of Ubuntu and another begins. The next starts on October 31th and is where the big picture is ironed out. You can read more about that here: http://uds.ubuntu.com/
Best Answer
The getting involved page on unity.ubuntu.com has an initial set of instructions to get started.
It looks like you've already branched the code. You can just edit it with whatever editor you prefer (the unity folks don't have a specific IDE, it's just personal preference). After you've made the change you want you can do a
bzr commit
and then you need to build Unity to test it:You don't have to follow the part of the instructions where you pull unity from Launchpad, you've already done that.
After you've fixed what you want you can submit the branch to Launchpad if you want the Unity folks to integrate it.
We have a page full of bitesize bugs for people who are just getting started if they want to tackle something small to get used to the codebase.
If you have specific questions about parts of the unity code just ask them as new questions and tag them with unity and Unity developers will look at them, it will be useful to start building up a bunch of questions and answers about the Unity codebase!