Housekeeping: Tests wrote log output

Tests should never output anything to the console.
(cherry picked from commit d2ba6fa4842739caa81b38916d54a592c04121bc)
Housekeeping: Silence Q rejection tracking output during tests
(cherry picked from commit fb2b9616eaaeda7fbfcaf8abb57876ec6d7a8ab6)
Fixed: Usage of reserved keyword
Marked `DiscoveryService`s private members as such
Fixed: `Response` now handles broken JSON responses correctly as well
Housekeeping: Removed one nesting level by using a guard clause
Added watch tasks for linting and unit testing

Those tasks allow the continous monitoring of linint and test status during development.
Implemented and Tested `extend` function
Fixed: double initializer
Used `extend` function to combine options
Made PromiseService internals *really* private and added copying of newXXXStruct methods
Made PromiseCAPI internals *really* private and copied over all non asynchronous methods as well
Cleaned up mixture of complex initialization and variable declaration
Made CAPI internals *really* private
Refactored CAPI tests to have a clearer structure

This is meant as an example on how to cleanly define specs with jasmine
Refactored both `Connections` to use prototypical inheritance instead of constructor inheritance
Fixed yuidoc warnings
Fixed various minor CS issues