Validate provisioning and authentication endpoints

Let's do this closer to the data, not deep into the callers of the
well-known parser.
Eliminate a variable reuse in claims extraction

These two sets of claims should always be kept completely separate
so let's use separate variables at all times when handling them.
Remove bogus comments (copy/paste leftovers)
Validate the authority field for delegating IdPs

The validation of that field should happen in the parser so that
invalid values never make it to the callers.
Convert string exceptions to Error objects

http://www.devthought.com/2011/12/22/a-string-is-not-an-error/
Add a test to make sure that "disabled: false" works
Be more strict about the format of "disabled"

While we could be more tolerant here than in the spec, the risk is
that the majority of developers will not read the spec and will
instead try something with our verifier and expect that it will
always continue to work the same way.

In other words, if we're too lenient at the start, we will be
stuck supporting an alternative syntax forever and will impose that
on third-party verifiers as well.
Remove lie in comment
Test invalid schemes when comparing audiences
Fix broken test

The ports need to match. This test was wrong.
Simplify the audience comparison logic

Remove the regular expression-based parsing and replace it with
url.parse().

Add the default scheme when it's not provided.
Fix typo in comment
Test that chained assertions are rejected
Validate the domain that's extracted from the cert email

The verifier makes use of the domain extracted from the email
address in a few places and so it should ensure that it's valid.
Merge branch 'validate_authority' into merge_all_the_things
Merge branch 'test_comment_cleanup' into merge_all_the_things
Merge branch 'avoid_variable_reuse' into merge_all_the_things
Merge branch 'validate_paths' into merge_all_the_things

Conflicts:
	lib/lookup.js
	lib/well-known-parser.js
Merge branch 'throwing_objects' into merge_all_the_things

Conflicts:
	lib/well-known-parser.js
Merge branch 'stricter_disabled' into merge_all_the_things