Issue #430: read_until_prompt_or_pattern does not apply timeout or sleep
Issue #430: read_until_prompt_or_pattern does not apply timeout or sleep

The read_until_prompt_or_pattern method in base_connection.BaseConnection reads
data from the connection in a tight loop reading data from the device, waiting
for the prompt or another pattern to be received. There are a couple of issues
with this.

1. There is no way to break out of the loop - no timeout mechanism is applied,
so we can get stuck here indefinitely if the device does not send the expected
pattern or prompt.

2. There is no delay between successive calls to the read_channel method. This
can lead to excessive CPU use as the process spins.  It also has a negative
impact when used in tandem with cooperative multitasking libraries such as
eventlet (as used by OpenStack, in which the networking-generic-switch package
uses netmiko and where I observed this issue).

The _read_channel_expect method used by read_until_prompt and
read_until_pattern avoids these issues by applying a timeout to the read and
sleeping between each read.

This change resolves the issue by combining the prompt and pattern into a
combined regular expression and waiting for it to appear using
_read_channel_expect.

ktbyers/netmiko,isidroamv/netmiko,fooelisa/netmiko,ktbyers/netmiko,isidroamv/netmiko,fooelisa/netmiko