Improve class Identity nickname validation function:
- Replace boolean returning function with a throwing one. Throwing an Exception allows us to include a reason why the nickname is invalid - which is needed for branch web-interface-revamp in the CreateIdentityWizard
- Notice: The following commit will make the Exception contain precisely which characters are invalid
- Use IfNull macro class to reduce LOC. I've considered letting the .trim() do an implicit null check but think we should do an explicit one: The nickname on identities *may* be null while they have not been downloaded, but it should be clear that one it is non-null, it may NOT be changed back to null - nickname changes of identities shall NOT be allowed.
- Don't duplicate validation code in setNickname().
- Adapt the rest of the WOT code to work with the new function.
- I've tested this by running the startup integrity test on a database of about 5000 identities. The test runs the nickname testing function on all of them.