[WIP] Add Base.build_sysimg()

This is basically just a julia translation of the makefile targets for generating `sys.$(dlext)` from `sys.ji`.  I'm sure there are border cases where this won't work, but I've tested it successfully on 64-bit Linux and OSX 10.9.

My thinking behind this is that we can then ship a `sys.ji` that has been created with `.setMCPU("x86")`, or `.setMCPU("core2")`, or whatever, but after we've started up, looked around, and decided that it is possible to regenerate the system image, we can build a native system image that should hopefully be faster.

@Keno (nice!), @vtjnash, @JeffBezanson what do you guys think of this?  If this general approach is looked upon with favour, I will add on to this PR with commits to make the `.setMCPU()` calls a little more dynamic.  As it stands now, if we distribute a `.setMCPU("i386")` binary, even if we rebuild the system image like this, we don't get any benefit, since the binary already has these restrictions baked in.

In the meantime, this branch can be tested out by installing Julia, (e.g. `make install prefix=/my/temp/prefix`), deleting `sys.{so,dll,dylib}`, and then opening Julia and running `Base.build_sysimg()`.  This should "just work", or print out intelligent errors when something doesn't work.  I think something like this would be much nicer for our "power users" than manually mucking around with system images and such, and even allows for users to play around with their `userimg.jl` to get package insta-loading, regardless of whether they built from source or not.
I do see a different effect.

````
~/src/analyze-x86/analyze-x86 sys_i386.o
instructions:
 cpuid: 0        nop: 42077      call: 0         count: 490683
 i486:   1
 i686:   1104
 mmx:    7625
 sse:    8915
 sse2:   482
~/src/analyze-x86/analyze-x86 sys_native_pre.o
instructions:
 cpuid: 0        nop: 264        call: 0         count: 457087
 i486:   1
 i686:   1105
 mmx:    7625
 sse:    8915
 sse2:   482
~/src/analyze-x86/analyze-x86 sys_native_post.o
instructions:
 cpuid: 0        nop: 258        call: 0         count: 459942
 i486:   1
 i686:   1107
 mmx:    7376
 sse4.2:         3
 avx:    9720
````

Where I applied the following change to codegen.cpp in L4330

````
 if (strcmp(cpu_target, "native") == 0)
        cpu_target = sys::getHostCPUName().data();
````

The sysimages where generated by

````
../julia -C i386 --build /tmp/sys_i386 sysimg.jl
../julia -C native --build /tmp/sys_native_pre sysimg.jl

Applying change and rebuilding julia

../julia -C native --build /tmp/sys_native_post sysimg.jl
````

I am on a second generation i5 and my architecture should be something like corei7-avx.
So for me there is a definite change when I specify my host architecture and I am also seeing llvm defaulting to i386.