Enhance the makefile library with FATAL_WARNINGS

Directories can now be configured to error if any warnings are detected.

A test case for issue #33 has been added using the new feature
Fix build warnings

Previously the operator+ on the BinaryReader/BinaryWrtier objects were
causing an ambiguity at function resolution as they had the same
priority as the standard operator+ with the object cast to a long.

This has been resolved by templating the operator+, reducing its
priority.

Fixes #33.