More self contained directive

- Made the directive a more self contained unit without polluting the parent scope. Removed the need for a template and the canvas element is grabbed using jqLite instead of an ID passed in.

- The directive now has an isolated scope.

- Switched to using a delegate service to control the directive.

- The delegate service allows you to access and control individual instances of a directive. This allows us to have multiple instances of the same directive in the same controller.

- All the pdf controls are available through the delegate.