Allocate, initialize, and free new monitoring fields

Every struct hid_dev now has two timers; one to periodically
begin a monitoring interval, and one to periodically clean the
neighbor list by deleting failed interfaces and neighbors. We
also need to allocate memory for a temporary target for each
monitoring interval.

hid_dev_finish_destroy() needs to do the opposite of hdev_init()
by deleting the timers and freeing the memory of the hdev.