number::currency() zero value issue

Before this change `0.00` and `'0.00'` are treated differently. Floats from the database are returned as the string version while doing calculations will normally end up as floats.

This causes output differences on pages like order totals or invoices where there is a mix of calculated values and database values.

![](http://i.imgur.com/G7VbJ.png)

### Before

	Number::currency(0.00, 'GBP') -> &#163;0.00
	Number::currency('0.00', 'GBP') -> 0p

### After

Both versions will return `&#163;0.00` (or whatever 0 is configured to return).

Includes tests and related [ticket](http://cakephp.lighthouseapp.com/projects/42648-cakephp/tickets/3525-cakenumbercurrency-with-zero-value-differs)