Breakdown installer

I'm beginning the restructuring of the installer so it's easier to extend and maintain. Problems with the current installer:

 * It's one very long script (hard to follow)
 * Pretty difficult to add support for other operating systems

These modification will solve those problems:

 * The main installer script will be much shorter
 * Adding OS support will be a snap

Please take a look at my changes and the direction I'm going. Let me know what you think.

The design is very similar to that of a CM (Configuration Management) tool like Puppet or Chef. They're used by sysadmins everywhere to manage infrastructure and breakdown the install/config process.