Merge pull request #512 from dalkon/master

Only use the move operator.
Use std::shuffle instead of std::random_shuffle

… because rand(), which is default in random_shuffle, is considered
harmful.
Code cleanup
Spaces to tabs
Code cleanup/improvements
Code cleanup
Avoid unnecessary copying

Item description string buffer was being copied even if we didn't have
to modify it. We will now check if it ends with a dot by reference, and
create a temporary copy only if it needs to be modified.
Add move constructor to WildcardTreeNode
Fix build error
Fix build warning

Fixes issue #540