implement protected string for settings. for save passwords, keys, token...

- Implement protected string for save\load passwords, keys, token...
- Add virtual for some methods
- SettingDescriptor to interface, it's flexibility
- Add tests

Can you merge to master and update nuget? Thanks