Select 2 bug fixing

As part of being a good citizen, a directive that uses NgModel, should (AFAIK)
use the correct values to render elements. Previously the select control
was using modelValue as opposed to viewValue inside the $render method.
This meant that cool tricks (like injecting parsers and formatters did
not work properly).

Also changed the directive initialisation to be more robust. In certain
cases the initial value was not being set correctly... meaning that on
recreation, any bound data would not show up properly.

This is my first pull request (ever). I have written tests for all the work I have done. Let me know if I did anything wrong :-)