docs(unit testing): improve unit testing guide

This commit adds to the unit testing guide:

- add explicit section on additional libraries: Karma, Jasmine and
  angular-mocks and link to the docs for those projects too. Explain the
  benefit and use case for each of these libaries
- Add more fully featured test examples and add more documentation
  around them, in particular the controller test
- more clearly distinguish between the section on principles of testing
  and actual tutorial on writing a test

This should close #8220.