feat(testability): implement the testability for ProtractorDart

See https://pub.dartlang.org/packages/protractor
fix(introspection): work around http://dartbug.com/17752
fix(introspection): work around additional bugs when working around dartbug 17752
test(e2e): add end-to-end tests using ProtractorDart

https://pub.dartlang.org/packages/protractor
chore(scripts): fix detection of DART_SDK/DART/DARTIUM

Sets the stage to get rid of obsolete DARTSDK.
chore(pubspec): require newer protractor