Correct two binding for primitive

I realised that after the last pull request I'd introduced (or their always had been) some issues with the two way binding.

Angular has trouble when you two way bind primitives (anything that isn't an object or array). You can read a little bit about it here: https://github.com/angular/angular.js/wiki/Understanding-Scopes

So, In this pull request I've changed it to use the ng-model controller for setting the values correctly. I've also altered the directive to only work as an element as you can combine the template definition with non element directives.