Implement currency formatting

- [x] Implementation
- [x] Tests
- [x] Doc

Fix #238 
> Although, I'm not convinced the difference in performance and overall bundle size justifies the change.

`extend` is a pretty common pattern and since we don't need deep copying, can be implemented in very little code. I just randomly found one place where it could be used immediately (`common/create-error`), I suspect there are many others.

Again, the understandibility would be improved, which in the long run will help us keep things tidy, small and fast.