(NETDEV-23) Add network_dns type

Without this patch there is no type to manage the DNS configuration of a
target device.  This patch addresses the problem by adding the
network_dns type with a namevar of `name` (only used to identify the
resources in the Puppet catalog), a string property for the domain, and
array properties of `search` and `servers`.
(NETDEV-23) Improve network_dns change messages

Without this patch the network_dns change messages look like strings
when comparing the servers and search properties, which are modeled as
Array's.  This patch addresses the problem by updating the formatting
methods for the search and servers properties to display Array's using
Puppet's format_value_for_display method.

This patch also updates the spec tests to use shared behaviors.
Merge branch 'arista-eosplus-master'

* arista-eosplus-master:
  (NETDEV-23) Improve network_dns change messages
  (NETDEV-23) Add network_dns type