feat($model): allow modalOptions templateProvider

allow <code>templateProvider</code> similar to ui-router's <code>templateProvider</code>
```javascript
   var modal = $modal.open({
      templateProvider: function($http, RandomService) {
        return $http.get('/api/for/'+ RandomService.generate() + ''template.html').then(function(res) { res.data });
      },
      controller: 'ControllerCtrl',
      // size: size,
      resolve: {
        item: function() {
          return 'resolvedItem';
        }
      }
    }).result;

    modal.then(function(ok) {
      console.log('ok', ok);
    })['catch'](function(err) {
      console.log('err', err);
    });
```