Tests: amount passed as string

Enforce behavior is same for identical value passed as string or int.
Fix: Money sign for string amounts was negative

Typed comparison is not necessary because of number_format check and
produces bug.
Tests: removed irrelevant 0 from decimals_invalid
Tests: fixed expected value for decimalsForStringAmount_invalid
Merge pull request #7 from Kdyby/bug_string_amount

Bug: Amount passed as string has always negative sign
3 empty lines changed to 2
fix WS
Remove useless 'public' in interfaces
Rewrite Money and simplify ICurrency interface

- get rid of Money::$decimals and $sign
- use math instead of string ops
- introduce Money::toInt() and toFloat()
- currency subunit is handled by ICurrency
Remove unnecessary cast to float