[KNIFE-366] Allow arbitrary bootstrap networks

https://tickets.opscode.com/browse/KNIFE-366

I've created some custom networks in addition to the standard public/private nets. I'd like to be able to use these to bootstrap a node (I'm using OpenVPN and only routing to this new network I created, not to all of Rackspace's "private" net. The nodes I'm bootstrapping have IP addresses on "private" and my custom net).

In order to do this, I refactored some things so that instead of choosing one method to fetch the IP on "public" and another to fetch the IP on "private", there is just a single method that takes a network name. The new command line option (--bootstrap-network) subsumes the functionality of --private-network, but I left the latter in for backwards compatibility.

Let me know if this looks like a reasonable approach, if I need to file a ticket, or anything else you need.