Avoid namespace pollution through header files which have 'using' statements

Including a statement such as ```using namespace std;``` in a header puts this into effect for *every* piece of code that includes said header -- resulting in namespace "pollution" and potential conflicts.

I've therefore removed such statements from the headers and adjusted the implementation when necessary (where such statements have only local effects).