Update the printf() implementation to match the May demo slides. Major changes include: 
Update the printf() implementation to match the May demo slides. Major
changes include: 

  - Each '%' in the format string is followed by some number of
    non-alpha characters (the "layout") and then an alpha character
    (the "kind"). The string and character are passed along to each
    FormattedPrintable's printFormatted() so they can do custom
    formatting
  - The Format struct is now used for the 'default' layout, which all
    of the standard libaries use
  - Added 'x' and 'o' custom formatting for formatting numbers in hex
    and octal, respectively. 'u' and 'l' can be used to print
    characters in uppercase or lowercase (String versions are yet to
    come).
  - The code for splitFormat()/printf() match what will be on the
    slides. They use the split operations to keep the whole thing
    linear, rather than performing inefficient slices.

There are some ugly hacks here due to <rdar://problem/11529601>.


Swift SVN r1980

OscarSwanros/swift,practicalswift/swift,allevato/swift,johnno1962d/swift,jmgc/swift,sschiau/swift,jopamer/swift,manavgabhawala/swift,ben-ng/swift,uasys/swift,codestergit/swift,tardieu/swift,zisko/swift,gregomni/swift,felix91gr/swift,aschwaighofer/swift,aschwaighofer/swift,kusl/swift,djwbrown/swift,allevato/swift,return/swift,xwu/swift,stephentyrone/swift,bitjammer/swift,jopamer/swift,CodaFi/swift,johnno1962d/swift,ben-ng/swift,rudkx/swift,dreamsxin/swift,danielmartin/swift,jckarter/swift,alblue/swift,zisko/swift,hooman/swift,CodaFi/swift,uasys/swift,ahoppen/swift,emilstahl/swift,xedin/swift,milseman/swift,IngmarStein/swift,brentdax/swift,tkremenek/swift,felix91gr/swift,MukeshKumarS/Swift,shajrawi/swift,shajrawi/swift,jckarter/swift,LeoShimonaka/swift,kusl/swift,karwa/swift,sschiau/swift,devincoughlin/swift,milseman/swift,LeoShimonaka/swift,emilstahl/swift,deyton/swift,modocache/swift,swiftix/swift.old,LeoShimonaka/swift,arvedviehweger/swift,shajrawi/swift,bitjammer/swift,sschiau/swift,huonw/swift,SwiftAndroid/swift,austinzheng/swift,LeoShimonaka/swift,return/swift,codestergit/swift,hooman/swift,gmilos/swift,parkera/swift,felix91gr/swift,shajrawi/swift,kusl/swift,mightydeveloper/swift,frootloops/swift,arvedviehweger/swift,adrfer/swift,manavgabhawala/swift,ken0nek/swift,mightydeveloper/swift,shajrawi/swift,allevato/swift,tkremenek/swift,frootloops/swift,ben-ng/swift,amraboelela/swift,parkera/swift,OscarSwanros/swift,russbishop/swift,IngmarStein/swift,apple/swift,arvedviehweger/swift,modocache/swift,gribozavr/swift,SwiftAndroid/swift,IngmarStein/swift,therealbnut/swift,gmilos/swift,alblue/swift,gregomni/swift,calebd/swift,OscarSwanros/swift,slavapestov/swift,harlanhaskins/swift,therealbnut/swift,Ivacker/swift,benlangmuir/swift,JaSpa/swift,tjw/swift,bitjammer/swift,Jnosh/swift,karwa/swift,russbishop/swift,kperryua/swift,practicalswift/swift,airspeedswift/swift,deyton/swift,dduan/swift,dduan/swift,hughbe/swift,khizkhiz/swift,gottesmm/swift,JGiola/swift,JaSpa/swift,MukeshKumarS/Swift,allevato/swift,therealbnut/swift,stephentyrone/swift,stephentyrone/swift,ahoppen/swift,uasys/swift,CodaFi/swift,atrick/swift,djwbrown/swift,atrick/swift,devincoughlin/swift,therealbnut/swift,frootloops/swift,uasys/swift,mightydeveloper/swift,adrfer/swift,jtbandes/swift,brentdax/swift,gmilos/swift,rudkx/swift,swiftix/swift,parkera/swift,kstaring/swift,khizkhiz/swift,atrick/swift,hooman/swift,nathawes/swift,shajrawi/swift,benlangmuir/swift,jtbandes/swift,tjw/swift,emilstahl/swift,rudkx/swift,JGiola/swift,gribozavr/swift,benlangmuir/swift,kstaring/swift,glessard/swift,JaSpa/swift,johnno1962d/swift,tjw/swift,austinzheng/swift,amraboelela/swift,dreamsxin/swift,johnno1962d/swift,milseman/swift,swiftix/swift.old,swiftix/swift.old,modocache/swift,xedin/swift,apple/swift,dduan/swift,russbishop/swift,tardieu/swift,xedin/swift,CodaFi/swift,jopamer/swift,russbishop/swift,Ivacker/swift,jopamer/swift,xwu/swift,hooman/swift,gottesmm/swift,adrfer/swift,jopamer/swift,SwiftAndroid/swift,swiftix/swift,dduan/swift,OscarSwanros/swift,karwa/swift,devincoughlin/swift,atrick/swift,kusl/swift,atrick/swift,harlanhaskins/swift,swiftix/swift,hooman/swift,emilstahl/swift,bitjammer/swift,return/swift,alblue/swift,xwu/swift,brentdax/swift,jtbandes/swift,emilstahl/swift,jmgc/swift,kentya6/swift,cbrentharris/swift,slavapestov/swift,aschwaighofer/swift,khizkhiz/swift,zisko/swift,nathawes/swift,cbrentharris/swift,cbrentharris/swift,ben-ng/swift,zisko/swift,KrishMunot/swift,xwu/swift,kusl/swift,KrishMunot/swift,stephentyrone/swift,glessard/swift,kperryua/swift,swiftix/swift,jmgc/swift,gottesmm/swift,MukeshKumarS/Swift,brentdax/swift,natecook1000/swift,swiftix/swift.old,dduan/swift,MukeshKumarS/Swift,sschiau/swift,manavgabhawala/swift,aschwaighofer/swift,emilstahl/swift,ben-ng/swift,arvedviehweger/swift,mightydeveloper/swift,lorentey/swift,xwu/swift,kstaring/swift,khizkhiz/swift,hooman/swift,gregomni/swift,therealbnut/swift,frootloops/swift,therealbnut/swift,slavapestov/swift,danielmartin/swift,benlangmuir/swift,parkera/swift,kperryua/swift,gottesmm/swift,kentya6/swift,tardieu/swift,karwa/swift,zisko/swift,djwbrown/swift,khizkhiz/swift,SwiftAndroid/swift,adrfer/swift,tinysun212/swift-windows,Ivacker/swift,glessard/swift,frootloops/swift,uasys/swift,nathawes/swift,shahmishal/swift,sdulal/swift,austinzheng/swift,xedin/swift,austinzheng/swift,manavgabhawala/swift,djwbrown/swift,harlanhaskins/swift,karwa/swift,gmilos/swift,JaSpa/swift,calebd/swift,benlangmuir/swift,adrfer/swift,natecook1000/swift,Ivacker/swift,roambotics/swift,tinysun212/swift-windows,roambotics/swift,nathawes/swift,danielmartin/swift,djwbrown/swift,manavgabhawala/swift,calebd/swift,jmgc/swift,roambotics/swift,amraboelela/swift,SwiftAndroid/swift,gregomni/swift,frootloops/swift,ken0nek/swift,kperryua/swift,gmilos/swift,hughbe/swift,calebd/swift,stephentyrone/swift,gribozavr/swift,tkremenek/swift,shahmishal/swift,airspeedswift/swift,kperryua/swift,tinysun212/swift-windows,sschiau/swift,mightydeveloper/swift,cbrentharris/swift,MukeshKumarS/Swift,IngmarStein/swift,gribozavr/swift,codestergit/swift,tardieu/swift,IngmarStein/swift,kentya6/swift,modocache/swift,shahmishal/swift,aschwaighofer/swift,parkera/swift,xedin/swift,jtbandes/swift,swiftix/swift,swiftix/swift.old,practicalswift/swift,glessard/swift,swiftix/swift.old,calebd/swift,dduan/swift,slavapestov/swift,gribozavr/swift,Jnosh/swift,cbrentharris/swift,kentya6/swift,sdulal/swift,airspeedswift/swift,alblue/swift,manavgabhawala/swift,kusl/swift,rudkx/swift,natecook1000/swift,codestergit/swift,jckarter/swift,roambotics/swift,kentya6/swift,johnno1962d/swift,roambotics/swift,JGiola/swift,airspeedswift/swift,mightydeveloper/swift,sschiau/swift,huonw/swift,johnno1962d/swift,gmilos/swift,tinysun212/swift-windows,slavapestov/swift,airspeedswift/swift,aschwaighofer/swift,deyton/swift,practicalswift/swift,SwiftAndroid/swift,ken0nek/swift,kstaring/swift,tjw/swift,KrishMunot/swift,felix91gr/swift,stephentyrone/swift,xedin/swift,apple/swift,JGiola/swift,karwa/swift,swiftix/swift.old,huonw/swift,aschwaighofer/swift,arvedviehweger/swift,harlanhaskins/swift,gregomni/swift,shahmishal/swift,bitjammer/swift,return/swift,KrishMunot/swift,dduan/swift,uasys/swift,IngmarStein/swift,devincoughlin/swift,khizkhiz/swift,cbrentharris/swift,LeoShimonaka/swift,tkremenek/swift,OscarSwanros/swift,swiftix/swift.old,lorentey/swift,sschiau/swift,danielmartin/swift,xedin/swift,deyton/swift,natecook1000/swift,LeoShimonaka/swift,karwa/swift,ken0nek/swift,Jnosh/swift,lorentey/swift,Ivacker/swift,huonw/swift,sdulal/swift,practicalswift/swift,deyton/swift,danielmartin/swift,emilstahl/swift,calebd/swift,arvedviehweger/swift,kperryua/swift,gmilos/swift,Ivacker/swift,airspeedswift/swift,austinzheng/swift,brentdax/swift,ahoppen/swift,brentdax/swift,amraboelela/swift,tkremenek/swift,LeoShimonaka/swift,practicalswift/swift,Jnosh/swift,shahmishal/swift,danielmartin/swift,return/swift,ahoppen/swift,felix91gr/swift,CodaFi/swift,stephentyrone/swift,jmgc/swift,jckarter/swift,harlanhaskins/swift,arvedviehweger/swift,Ivacker/swift,slavapestov/swift,MukeshKumarS/Swift,parkera/swift,modocache/swift,mightydeveloper/swift,shahmishal/swift,adrfer/swift,JaSpa/swift,devincoughlin/swift,milseman/swift,huonw/swift,apple/swift,harlanhaskins/swift,OscarSwanros/swift,felix91gr/swift,gribozavr/swift,tjw/swift,Jnosh/swift,tinysun212/swift-windows,nathawes/swift,tkremenek/swift,danielmartin/swift,kentya6/swift,allevato/swift,glessard/swift,xwu/swift,practicalswift/swift,alblue/swift,gribozavr/swift,ken0nek/swift,benlangmuir/swift,shajrawi/swift,lorentey/swift,hughbe/swift,Ivacker/swift,JGiola/swift,devincoughlin/swift,russbishop/swift,jckarter/swift,deyton/swift,kperryua/swift,natecook1000/swift,zisko/swift,jopamer/swift,JGiola/swift,gottesmm/swift,return/swift,austinzheng/swift,JaSpa/swift,MukeshKumarS/Swift,ahoppen/swift,hughbe/swift,parkera/swift,alblue/swift,hughbe/swift,uasys/swift,KrishMunot/swift,modocache/swift,jtbandes/swift,codestergit/swift,natecook1000/swift,brentdax/swift,kusl/swift,practicalswift/swift,kentya6/swift,jopamer/swift,LeoShimonaka/swift,gottesmm/swift,xedin/swift,sschiau/swift,CodaFi/swift,slavapestov/swift,tjw/swift,felix91gr/swift,tardieu/swift,ken0nek/swift,bitjammer/swift,kusl/swift,ben-ng/swift,kstaring/swift,kstaring/swift,tinysun212/swift-windows,amraboelela/swift,russbishop/swift,rudkx/swift,codestergit/swift,ben-ng/swift,OscarSwanros/swift,modocache/swift,sdulal/swift,lorentey/swift,IngmarStein/swift,adrfer/swift,lorentey/swift,shajrawi/swift,sdulal/swift,tardieu/swift,ahoppen/swift,tinysun212/swift-windows,russbishop/swift,allevato/swift,KrishMunot/swift,devincoughlin/swift,hooman/swift,calebd/swift,jtbandes/swift,huonw/swift,xwu/swift,ken0nek/swift,jckarter/swift,jmgc/swift,apple/swift,harlanhaskins/swift,gottesmm/swift,therealbnut/swift,milseman/swift,kentya6/swift,airspeedswift/swift,shahmishal/swift,lorentey/swift,KrishMunot/swift,JaSpa/swift,devincoughlin/swift,gregomni/swift,return/swift,djwbrown/swift,mightydeveloper/swift,tardieu/swift,deyton/swift,amraboelela/swift,cbrentharris/swift,atrick/swift,glessard/swift,alblue/swift,apple/swift,emilstahl/swift,cbrentharris/swift,swiftix/swift,gribozavr/swift,rudkx/swift,sdulal/swift,parkera/swift,nathawes/swift,sdulal/swift,swiftix/swift,bitjammer/swift,johnno1962d/swift,djwbrown/swift,milseman/swift,roambotics/swift,karwa/swift,huonw/swift,Jnosh/swift,CodaFi/swift,jmgc/swift,allevato/swift,zisko/swift,codestergit/swift,Jnosh/swift,SwiftAndroid/swift,jtbandes/swift,kstaring/swift,shahmishal/swift,hughbe/swift,hughbe/swift,manavgabhawala/swift,austinzheng/swift,nathawes/swift,frootloops/swift,amraboelela/swift,sdulal/swift,lorentey/swift,natecook1000/swift,tjw/swift,tkremenek/swift,khizkhiz/swift,milseman/swift,jckarter/swift