Support node files for the node-list provider

Support instantiating a node-list provider from clojure format data files.

Introduces pallet.compute.node-list/node, which is similar to make-node, but
makes the os-family, name and group name optional.  The name and group-name
default to the ip.  This means the only data required is an ip address.

Adds a :node-file option to the provide function.  If neither :node-list nor
:node-file are specified, it looks for a node file in standard locations:
.pallet-nodes, ~/.pallet/nodes and /etc/pallet/nodes.

Introduces pallet.compute.node-list/node-list, which is similar to
node-list-service, but makes the node-list argument optional.
Allow PALLET_HOSTS to set node-file for node-list

Allow the use of the PALLET+HOSTS environment variable to set the
location of the default node-file used when constructing a node-list
service.
Refactor node-list functions
Change node to take hostname

The ip and group defaults to the hostname.
Resolve node-list hostnames on creation
Allow map of group to nodes in node-file

Allow groups to be specified as a map in the node-file.
Add argument checking to node constructor
Fix no node-file case
Correct node-list function metadata
Fix node file creation of node from ip
Use edn files for default node file locations
Make node-list the default service in tasks
Update to tools.cli 0.2.4
Don't proceed with lift if os detection fails
Fix packager for node-list node with no os-family
Fixes for group-name as keyword in node-list
Update node-list doc string
Add service-groups function to p.core.api
Fix arguments to help in main-invoker