uart internal changes

* replace buffer type by vector<byte> instead of basic_string
* create a callback type