feat($resource): Make stripping of trailing slashes configurable.

First, this now uses a flat object configuration, similar to
`$httpBackend`.  This should make configuring this provider much more
familiar.

This adds a fourth optional argument to the `$resource()` constructor,
supporting overriding global `$resourceProvider` configuration.

Now, both of these ways of configuring this is supported:

    app.config(function($resourceProvider) {
      $resourceProvider.defaults.stripTrailingSlashes = false;
    });

or per instance:

    var CreditCard = $resource('/some/:url/', ..., ..., {
        stripTrailingSlashes: false
    });
docs(guide/unit-testing): fix small typo (than instead of then)
docs(guide/directive): directives can be comments, too

While it's not a widely used feature, and likely shouldn't be recommended, it is
possible to use a directive via a comment node.

Closes #7061
feat(injector): optionally disable automatic function annotation

This modifies the injector to prevent automatic annotation from occurring for a given injector.

This works by passing a `true` as the 3rd or 4th parameter to createInjector(), or alternatively
to angular.module.

```js
angular.module("name", ["dependencies", "otherdeps"], configFn, true)
  .provider("$willBreak", function() {
    this.$get = function($rootScope) {
    };
  })
  .run(["$willBreak", function($willBreak) {
    // This block will never run because the noMagic flag was set to true, and the $willBreak
    // '$get' function does not have an explicit annotation.
  }]);
```

This will only affect functions with an arity greater than 0, and without an $inject property.

Related: #6717
feat(injector): improve public API for disabling automatic function annotation

This patch adjusts the public API as discussed, by moving it into bootstrap, rather than at
the module definition level.
feat(injector): change public API based on discussion

The API has been discussed a fair bit today, details are at http://goo.gl/0DvZ7V. There may be a
small number of changes left to make before this is shippable.
feat(injector): improve nomagic errors for controllers and route resolves

Tiny change which improves error messages by referring to registered controllers by their registered
name rather than the function signature, as well as referencing $route resolve functions by their
local name, as opposed to their function signature.
chore(injector): rename "no-magic" API to "strict-di"

Changes:

$minErr: 'nomagic' -> 'strctdi'
bootstrap: noMagic flag -> strictDi flag
angularInit: ng-no-magic directive -> ng-strict-di directive

The angular-mocks helper function `inject.strictAnnotations()` remains the same.
docs(injector): add minErr document for strict-di error

--