Svg tooltip with smart positioning (ready)

Add basic stylable svg tooltip. Svg tooltips are also positioned correctly - to handle cases like graph edges where they would have been clipped otherwise.
Added svg text layout capabilities to deal with newlines and resize the tooltip accordingly.

To use the tooltip add a tooltip dimension to your data:
```javscript
tooltip: function(d) {
  return 'x: ' + d.x + '\n' + 'y: ' + d.y;
}
```
![tooltip](https://f.cloud.github.com/assets/635679/941054/49838aa0-013b-11e3-8f33-f8309187bfc1.png)

- [x] Add svg tooltip
- [x] Add basic text layout logic
- [ ] ~~Add declaritive event binding~~
- [x] Add tests

New updates.
- [x] Clean up the code
- [x] Integrate with highlights 
- [x] Add remaining tests
- [x] Add a list of ToDos