Simba msgs

Moved the URDFParser into the HAL library and made it its own cmake package. It should be standardized, but for now, it's used as-is in CarPlanner and SimBA. The custom protobufs used in SimBA have also been moved to PbMsgs. 
The Google style/good practice is to not return complex types like a `std::vector` and instead pass in a `std::vector<>*`, do `CHECK_NOTNULL(ptr)` and then add values directly to the vector.