Refactor PasswordService: From singleton to normal class.

This allows us to (potentially) have multiple instances of the PasswordService,
every instance with different data.
Move code for encryption from PasswordService into dedicated service.
Capitalize variable "mockedBackendService" in core.js spec.
Fix: Do not save volatile property to persistence layer.

The updateUpstream method of the PasswordService class saves the entries as they
are to the persistence layer. The problem with this approach is that the
modified entries have a volatile property, which is then saved to the
persistence layer as well.

To fix this problem, this commit processes every entry and picks only the
properties which are meant to be persisted, hence dropping the undesired
volatile property.
Define configuration via angular value.

This commit makes the configuration available via the value() method of an
angular module instead of exposing it as a requirejs dependency.

This enables easier mocking of the configuration in unit tests.
Move loading of $injector into test setups.

Instead of getting an $injector instance immediately after the require module
has been loded, this commit gets the $injector in the stup of the test suite.
Switch to mocha BDD interface.

The rationale is simple: ngMock supports it better.
Switch to chai for asserting values.

It offers a richer set of features.
Add sinon.js for spying/stubbing/mocking.
Implement the mocked backend service in a dedicated module.

This commit moves the implementation of the mocked backend service to a separate
module. The verification that the correct methods have been called is now done
with sinon spies.