Remove unused function
Fixed ID assignment
Renamed misleading variables
Removed unused function
Removed unused function
Switched private members to PIMPL

This removes the need to install the libjson headers, which were just an
implementation detail
Fix warning in third party library