AAC refactoring: use symbolic names for object type constants
tests: add unit test for bit_reader_c
bit_cursor_c: add memcpy-based get_bytes() for byte-aligned reads
byte_buffer_c: make copyable

…by using smart pointers instead of plain pointers. Otherwise after
copying an instance the plain pointer is freed multiple times.
AAC reader: refactor to use aac::parser_c with support for LOAS/LATM

This means that the AAC reader can now read raw LOAS/LATM multiplexed
AAC files in addition to ADTS ones. See #877.