WIP: Compose.jl Backend

This is a first pass at implementing a Compose.jl backend for ProfileView.  The goal is to output an interactive
SVG flame graph with zooming and panning capabilities.  It should work in an IJulia notebook as well as a standalone SVG file.  This is still a work in progress, any feedback/comments would be really appreciated.

The basic layout using Compose is pretty much done.  I'm still trying to figure out how the color scheme works.  The image below is from the existing SVG backend.  There seem to some adjacent lines that have the same
color, perhaps traces from the same function are assigned the same color?

![profileview orig](https://cloud.githubusercontent.com/assets/7328215/3574174/160c7470-0b7b-11e4-83ba-8e964ebdf1dd.png)

The current output is just a static image without any Javascript.  The layout seems to be working fine.

![profileview](https://cloud.githubusercontent.com/assets/7328215/3574052/3b337d86-0b79-11e4-88da-93a2d2f6fe91.png)

Right now, the text is truncated (if necessary) before rendering.  However, I think that it will probably work better
if it is handled by a Javascript library.  For example, Snap.svg has `Element.getBBox` function that we can
use to compare the text size and the box size.  When the user zooms in, the length of the displayed text
can change to fill the box.

To-do: (additions are welcome!)

- [ ] Color
- [ ] Output text when the user clicks on a line
- [ ] Panning and zooming (scavenge code from Gadfly)
- [ ] Dynamic resizing/truncation of text
- [ ] Aesthetics