feat(dialog): rewrite $dialog

I think that at this point it is cleat to everyone that the current `$dialog` service got in a state where it is hardy maintainable. There are tons of issues opened for it and some of the design decisions make it impossible to move forward with the current code. 

I'm in the process of re-writing the current service and the modal directive, will try to push the first version for review over the weekend (if everything goes as planned). 

Going to close all the existing issues for `$dialog` and 'modal' as a duplicate of this  one.

As a reminder, early draft of the design is available here: 
https://gist.github.com/ajoslin/5477996

@ajoslin I'm not sure if keeping is as gist is the best thing at the moment as I can't easily modify it. Not sure how to progress - I can fork of course but how do we merge all the versions? Anyway I will be working on the forked gist for now.