This fixes and adds some tests for the RFC2136 provider. The SendMessage stub
function is improved with better DNS message parsing. Also a new test is
introduced which simulates a single record with multiple targets. Also the test
for ApplyChanges is fixed for the new batch updating.
The controller will retrieve all the endpoints at the beginning of its
loop. When changes need to be applied, the provider may need to query
the endpoints again. Allow the provider to skip the queries if its data was
cached.