Update 3: Sorry it took so long to get back. I have been doing some reading. There two ways for a operating system to boot on a Mac. The first involves using the legacy BIOS which assumes the disk is partitioned using a MBR scheme. The second uses the EFI which (in our case) assumes the disk is partitioned using a GPT scheme. Macs provide both partition schemes (thus the name Hybrid) which allows for both types of booting. OS X always boots using EFI/GPT. After studying the output you posted, I have come to the conclusion both Windows and Fedora were booting using BIOS/MBR. The boot manager rEFIt is primarily designed for Macs and, in your case, was installed in the OS X partition.
Upgrading to Yosemite created two problems. First, rEFIt was disabled. Second a small Recovery Partition was added between the OS X and Fendora partitions. Reinstalling rEFIt may be solution to the first problem. I notice rEFIt has not been updated in many years and may no longer be compatible with Yosemite. The boot manager rEFInd is suppose to replace rEFIt, but there are differences worth noting. First, rEFInd is not only for Macs. Actually, the development platform is more for Linux. This is stated on the rEFInd home page. Second, rEFInd assumes a UEFI (which succeeded EFI) and most (if not all) Macs do not fully adhere to this new standard. Third, as far as I can tell, rEFInd assumes all partitions are booting using EFI/GPT. I do not believe this is what you are trying to do. I assume you will still be installing and booting Windows 7 and Fedora 21 using BIOS/MBR. A better choice may be Boot Runner. You can use a 14-Day Trial. If you buy, the cost is $10. If not, it is easy to uninstall.
The Second problem, involving the extra Recovery Partition, can be resolved by removing the partition. It is not the best solution, but just the easiest. There is a good chance that if you hold down the alt(option) key at startup, you may be able to boot Fedora. This may also work for Windows, once the extra Recovery Partition is removed. I would still encourage you to copy the Recovery Partition to a flash drive before deleting it. If you every need to reload Yosemite, you can download it by booting to this flash drive.
The drivers for Windows 7 can be downloaded from Boot Camp: System requirements for Microsoft Windows operating systems. You can also download the drives using the Boot Camp Installer. Just so you know, I used the same drivers to install Windows 8 (64 bit) on my iMac (20-inch, Mid 2007), even though this web site says I can not. I assume you could do the same. I may install Fedora on my iMac, just to see if it works. Maybe Boot Runner as well. I am not using the same order as you. I currently have Windows 8.1 installed before Yosemite. I would be installing Fedora between Windows and Yosemite. This is how I avoid the problems you encountered installing OS X upgrades.
Update 2: Yosemite installer inserted a hidden partition between the OS X and Fedora partitions. The solution I was going to use involves removing this partition. I have never used the Disk Utility to do this. If you want to try, first you will have to make the hidden partitions visible. The instructions for doing this can be found at View & Mount Hidden Partitions in Mac OS X. You want to view the hidden partitions. Do not mount them.
I was going to have you copy the hidden partition to a flash drive before you deleted it. Without the flash drive, you may have to reinstall Fedora. If all goes well, Windows should be bootable once the hidden partition is deleted. If not, you should be able to reinstall Fedora and Windows.
The alternative, would be to boot from the flash drive and edit the partition tables. This would be complicated but could save you from having to reload the operating systems.
Update 1:
Post the output from the command:
diskutil list
Questions:
Have you every booted the computer by holding down the alt(option) key?
Do you have a flash drive 1 GB or larger than you can erase and reuse?
To edit the partition tables you will need to boot from a flash drive. To make the flash drive, you will need to download the OS X Recovery Disk Assistant. This application works with Lion through Yosemite.
An alternative to making the flash drive would be to delete Windows and Linux. I assume you do not want to erase either one.
I am a novice at this, but I will give it a go. I hope someone else would build on this post. In my opinion, Yosemite added a recovery partition after the OS X boot partition. This partition appears in both the GPT and MBR partition tables. This moved the Fedora and Windows partitions up in the GPT table. Fedora also move up in the MBR table, but since the MBR is limited to 4 partitions, Windows was completely removed from the MBR table. XP can only boot using a MBR partitioning scheme, so it is understandable why XP will not boot.
In the GPT table, Windows is shown as partition 5 with type Basic Data. I assume the GUID is EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, although one would have to run
sudo gpt -r show /dev/disk0
from a OS X Terminal window to confirm this. Partition 4 also is shown as a type Basic Data. This may be an error, since I assume the partition should have a Linux GUID. It would help if you would add the output from the above command to you question.
If I am right, you have two options. Option A: move the partitions around so Windows will not be the last partition on the disk. This would be time consuming and would require an external disk to temporary hold one or more partitions. Option B: Remove the OS X recovery partition from the GPT and MBR tables. This partition is only 650MB in size. OS X has a tool you can download which will copy the partition to a flash drive. You can then boot from this flash drive if you need to. OS X has two command line utilities called gpt and fdisk which can be used to restore the GPT and MBR tables to the state before you installed Yosemite.
Also, could you include in your question what model iMac you are using.
Best Answer
Per your request from the below quoted text,
here is some info (I will make edits shortly when I have more time):
An EFI partition (sometimes referred to as an ESP partition) is nothing more than a msdos formatted partition at the beginning of your drive. Contained in this partition is an EFI folder. Within that EFI folder, is the apple bootloader (the same thing as refind, but made by Apple). When you format any drive on a mac using disk utility with apfs or hfs+ filesystem, your mac automatically creates an EFI partition on that drive. However, it only installs the bootloader on your main internal drive. This means, that any disk utility externally formatted mac drive contains an efi partition, but your mac does not use it because within that partition, there is no EFI folder or bootloader. It is essentially completely unused.
When you install refind to an external disk on its EFI partition, you are essentially installing a non-apple bootloader on that drive. When your mac boots, it will look for a bootloader. When you have 2 different bootloaders (Mac OS default bootloader + refind) on two different drives, in two different EFI partitions, it can create unnecessary complications. Although This scenario is still possible, and will work, it is completely unnecessary, redundant, and confusing (for your mac). That being said, I would strongly advise to back up your original bootloader on your main hard drives EFI partition (as simple as making a duplicate copy of the original EFI folder inside the EFI partition using finder), and then installing refind to that drives EFI partition. This will eliminate confusing your mac in a dual/tripple boot scenario. To reinstall your macs original boot configuration, just deleted the EFI folder with refind on it, and rename your backup EFI folder (EFI Copy) to EFI.
EDIT:
Now that I think about it, I havent messed with refind and bootloaders and bootmanagers (refind) on macs for a while. So the above answer i posted is actually not totally correct. Bootloaders/bootmanagers on macs are a lot less complicated then they actually seem, but there are definitely things to consider particular to your setup. Macs DO overwrite refind when upgrading your os and sometimes on updates as well. This requires you to reinstall refind, or touch refind on your mac to indicate that it is the default bootmanager. I prefer just reinstalling since its automated and easy.
If you want more information on why i recommend just installing refind to your main hard drive and how it could complicate things otherwise, i would strongly you read the refind documentation from the developer (smart and great guy) at http://www.rodsbooks.com/refind/.
Be sure to read up on the sections about disabling sip before installing http://www.rodsbooks.com/refind/sip.html
After reading through all the documentation, if you still do not have a grasp on things, you could try emailing the developer with further questions. But be sure you understand the documentation as best as possible before you bother a busy man with something that is possibly already documented.