Inilining all the functions to allow compilation of files with multiple includes

Right now if you try to compile together two files a.cpp and b.cpp, both of which ```#include <ros.h>```, the linking phase will fail given that all the functions in the cpp files are defined twice. The reason is that some header files include cpp files, a choice that I fail to understand.

Ideally one should have everything in header files, but this fix allows cpp files to exist and a library to be created (as in the [wiki page](http://wiki.ros.org/rosserial_embeddedlinux/Tutorials/Advanced%20Techniques#Building_rosserial_embeddedlinux_as_a_library) ).

**Note for code size**: usually inlining code increases the code size (not necessarily!). However, considering that most of the rosserial library is already header only, therefore inlined by default, the additional functions should not make a substantial difference.

**Note for additional commit**: The file node_handle.h is modified by a different fix which is already the subject of pull request #62.