Change base class of abc::buffer_error to abc::generic_error
Define abc::buffer_error without using macros
Rename abc::text_*error to abc::text::*error
Remove duplicate #include directive