Fixes infinite loop possible.

http://www.viva64.com/en/d/0289/print/
Added WinMM.lib because timeGetTime depends on it.
Fixed 'An array/object was declared but was not utilized'.

http://www.viva64.com/en/d/0274/print/
Replace iterator++ with ++iterator.

http://www.viva64.com/en/d/0165/print/
Ineffective use of the 'count' function.

http://www.viva64.com/en/d/0294/print/
Const ref.

http://www.viva64.com/en/d/0303/print/
Fixed 'An array/object was declared but not utilized'.
http://www.viva64.com/en/d/0331/print/
The use of 'new type(n)' pattern was detected.

http://www.viva64.com/en/d/0097/print/
The expression of the 'A - B > 0' kind will work as 'A != B'

http://www.viva64.com/en/d/0146/print/
It is odd that the object which was created using 'new' operator is immediately casted.

http://www.viva64.com/en/d/0170/print/
The conditional expressions of the 'if' operators situated alongside each other are identical.

http://www.viva64.com/en/d/0183/print/
The expression was implicitly casted from integer type to real type.

http://www.viva64.com/en/d/0254/print/
There is no sense in testing the pointer against null, as the memory was allocated using the 'new' operator.

http://www.viva64.com/en/d/0293/print/
The 'strcmp' function returns 0 if corresponding strings are equal.

http://www.viva64.com/en/d/0115/print/
The 'false' value is implicitly casted to the integer type.

http://www.viva64.com/en/d/0212/print/
On 32-bit/64-bit platform, structure size can be reduced by rearranging the fields according to their sizes in decreasing order.

http://www.viva64.com/en/d/0150/print/
Consider creating a pointer/reference to avoid using the same expression repeatedly.

http://www.viva64.com/en/d/0216/print/
Verifying that a pointer value is not NULL is not required.

http://www.viva64.com/en/d/0278/print/
Merge pull request #436 from bilke/static-analysis-fixes

Static analysis fixes part 1
:+1: :guitar: :cake: