OHAI-529: ip_scopes prefers ethernet to ppp

On hosts with virtual interfaces on RFC1918 networks, the ip_scopes
plugin may set `node.privateaddress` to a virtual address. This can
cause problems with automation that relies on the `privateaddress`
attribute.

This patch prefers non-ppp interfaces when setting `privateaddress`,
though it will use ppp interfaces if they are the only ones.
OHAI-529 sort interfaces in ip_scopes before assigning privateaddress

Hash keys are ordered in Ruby > 1.9, so the plugin behaved differently
between 1.8 and newer versions. In order to make the code (and tests)
more deterministic, let's sort network interfaces before doing work.
OHAI-529 Remove ipaddr_extension from Gemfile

Specs for the ip_scopes plugin can be run in two ways:
* Run rspec in the context of `bundle exec`
* Install ipaddr_extensions, then run rspec outside of
  `bundle exec`
OHAI-529 ensure virtual IPs are never chosen for privateaddress

- Refactor privateaddress logic into smaller, more clear
  methods based on comments from @btm
- Make rspec descriptions a little more readable