Fixes #6086 - stop remote command execution and path exploit in TFTP API (CVE-2014-0007)
Fixes #4866: Breaking up monolithic smart-proxy into modules
refs #4866 - Added config/settings.d/*yml to gitignore
fixes #6334 - pass virsh_network to virsh DNS provider
fixes #6341 - Add support for 64-bit MAC addresses
fixes #6436: plugins are now being loaded after core modules
fixes #6306: removed possible namespace collisions with puppet and chef
fixes #6474: smart-proxy relies on Bundler to load sinatra dependency
fixes #6085 - fixed virsh dhcp provider netmask interpretation

The virsh.rb loadSubnets method was only looking for a definition of
a netmask inside the libvirt network XML, despite netmask not being
there in case a prefix attribute was defined. netmask and prefix are
mutually exclusive by libvirt definition.

Also the ipaddr library has no easy way of retrieving a readable netmask
from a prefix, albeit this functionality is provided by the inspect
method of IPAddr, a monkey-patch "to_mask" was introduced to circument
the original implementation.
fixes #6377 - incorrect dhcp providers server virsh.rb loadSubnetData

The commit fixes dhcp server virsh.rb provider. Upon loading the
contents of the libvirt network XML and parsing for DHCP reservations a
check is performed on the kind of records that are being loaded. The
dhcp_api.rb 'delete' helper tries to load network entries of the
'reservation' kind, the helper uses modules/dhcp/dhcp/subnet.rb to
validate on that and filter out entries.

In contrary to other providers (ms, isc) the loadSubnetData method of
virsh.rb was dealing out "Proxy::DHCP::Record" for any entry it was able
to discover, but should have been instantiating
"Proxy::DHCP::Reservation" to pass the validation.

This resulted in "ERROR -- : Record
x.x.x.x/xx:xx:xx:xx:xx:xx not found" as well as leaves in the libvirt
network XML. This prevented the creation of VMs with the same addresses,
since leftover DHCP entries conflicted with the new ones.
fixes #6289: avoids concurrent downloads of files with the same name and destination dir.
fixes #6275 - idempotence needs clone of original data and to handle *_port
Fixes #6396: an error removing a DHCP record (record doesn't exist) stops the delete process for a host
Fixes #6412: Trying to remove a DHCP record fails due to an invalid subnet check
fixes #6583 - Use Enumerable#find instead of each where possible
fixes #6584 - Replace Kernel#open with File.open
fixes #6585 - Update Proxy::Util::CommandTask to handle Ruby 1.8 and 1.9+

In this update, use 'true' and 'false' to test $? return codes 0 and 1, respectively.
In Ruby 1.8.x, the return code from Open3.popen3 is always 0, some errors will not be caught.
fixes #6588 - don't load user settings when testing default settings
fixes #6661: trailing slash is not required in urls
fixes #6700 - tests for Proxy::Puppet::Runner shell methods