DNS entity improvements

BindDnsServer rebinds, supports CNAME records and is better tested. 

@grkvlt Would be great if you could review this thoroughly.
Why do you think it is better to synchronise on an explicit Object?

I'm not really comfortable enough with Brooklyn's concurrency model to know for sure that `update` won't be called concurrently. If `MemberTrackingPolicy.onEntityChange` is guaranteed to be called synchronously then we should be able to drop the `synchronized` statement.