fix(urlUtils): made removal of windows drive from path safer

Prior to this fix, the urlResolve method would automatically
strip the first segment of a path if the segment ends in a colon.
This was to correct undesired behavior in the $location service
using the file protocol on windows in multiple browsers (see #4680).

However, there could be cases where users intentionally 
have first path segments that end in a colon 
(although this conflicts with section 3.3 of rfc3986).

The solution to this problem is an extra check to make sure
the first path segment of the input url does not end with a colon,
to make sure we're only removing undesired path segments.

Fixes #4939
feat($parse): revert hiding "private" properties

Hiding `_*` properties was a feature primarily for developers using Closure compiler and Google JS
style. We didn't realize how many people will be affected by this change.

We might introduce this feature in the future, probably under a config option, but it needs more
research and so I'm reverting the change for now.

This reverts commit 3d6a89e8888b14ae5cb5640464e12b7811853c7e.

Closes #4926
Closes #4842
Closes #4865
Closes #4859
Closes #4849

Conflicts:
	src/ng/parse.js
docs(ngBindHtml): fix dependency for Plunker and JSFiddle in example

The `<doc:example>` directive does not load up the dependencies correctly.
Using the `<example>` directive, with `<file>` elements fixes this.

Closes #4951
docs(downloading): fix invalid filenames and add missing modules

Closes #4846
docs(misc/contribute): fix internal links

Closes #4848
docs(tutorial/step-12): fix incorrect code filename

Closes #4860
docs(resource): fix grammatical issue

'Case' should be the plural 'cases' since it is talking about multiple possible cases rather
than a single case. For slightly more info, see the section 'When words like "none" are the
subject' in this article: http://writing.wisc.edu/Handbook/SubjectVerb.html
docs(guide/directive): clarify sentence meaning

Closes #4873
docs(guide/directive): split long lines
docs(tutorial/step-2): remove repeated "the"

Closes #4854
docs($q): add missing closing parentheses in code example

Closes #4900
docs(guide/concepts): improve sentence wording

Before:

> Let's add some more logic to the example to
allow to enter and calculate the costs in different currencies and also pay the invoice.

After:

> Let's add some more logic to the example that
allows us to enter and calculate the costs in different currencies and also pay the invoice.

Closes #4903
docs(NgModelController): clarify documentation of `$setViewValue`

$setViewValue does not really "Read a value from view".
It should be called to trigger the ngModel to be updated when the value in the view changes.

Closes #4907
docs(ngClass): distinguish between CSS classes and scope properties

Closes #4914
docs(guide/concepts): controllers can also access scope

Closes #4918
docs(misc/faq): fix invalid escaping of character

Backslash is acting as escape character so text is not properly formatted.

Closes #4923
docs(FormController): remove unnecessary parenthesis

Closes #4936
docs(NgModelController): document `$viewChangeListeners` property

Closes #4948
docs(ngClass): fix e2e test for example

Broken by fd7bca22e16b0ecbe1feaf49bab39d9a44b8df01
docs(tutorial): change controllers to not have name twice

While giving the controller function a name helps with debugging,
since otherwise your controller will be anonymous in stack traces,
passing the name to both the `controller()` method and as the function name
is confusing for beginners.

Closes #4415