improve startup performance

The bottleneck for startup performance has been the system's polling for output after a command is run. The more commands that are run, the slower mininet gets. This pull request is an attempt to remove as many unnecessary commands as possible. I have seen dramatic startup improvements with this, improving startup of a linear 200 topo with user switches from 60 seconds to 35 seconds, and a linear 200 topo with OVS from 120 seconds to 75 seconds. However, the pty branch slows it back down slightly

improvements made:
- I removed a few repetitive commands in this pull request( 'ifconfig lo up' commands )
- I specify a mac address for each interface when the interface is created. This does two things for us:
       - Allows us to set the OUI to A4:23:05( ONLAB OUI ). this fixes #156
       - Allows us to get rid of a few ifconfig commands during link creation, which were causing it to run so slow.
- added a fix for an issue where PIDs are read in a different line than \r\n in 14.04, which @bocon mentions in #322
So the Linux kernel doesn't check for collisions:

// drivers/net/veth.c
if (tbp[IFLA_ADDRESS] == NULL)
                eth_hw_addr_random(peer);

// include/linux/etherdevice.h
static inline void eth_random_addr(u8 *addr)
{
        get_random_bytes(addr, ETH_ALEN);
        addr[0] &= 0xfe;        /* clear multicast bit */
        addr[0] |= 0x02;        /* set local assignment bit (IEEE802) */
}