Implement typed buffer

Implement typed buffer based on abstract base_buffer:
 - buffer is a simple buffer wich does not manage its storage area,
 - mutable_buffer, can grow/shrink
Add buffer, mutable_buffer, and UnitTest.

* Add gtest dependency,
* implements buffer and mutable_buffer,
* implements unit tests for buffer and mutable_buffer.
Update test_mutable_buffer.cpp

Implements:
 * fill test,
 * fill with offset test.
Update sources/tests/test_mutable_buffer.cpp

* test append methods
Update sources/utils/mutable_buffer.h

- Fix push_back
- Implements tests for push_back(uint8_t) and push_back(uint16_t)
Change absctract_buffer behavior

* methods data return nullptr when buffer length == 0,
* mutable_buffer now uses count method from abstract_buffer.
Increases tests coverage

* clean test_buffer.cpp,
* update test_mutable_buffer.cpp to cover count and push_back
  methods.
Add gmock (v1.7.0) to dependencies

* Update Test.mk and build_tests.mk to compile gmock
Buffers Documentation.
Merge pull request #1 from NealRame/typed-buffer

Split implementation of previous buffer into two buffers classe.