This is done if we want to show a public IP, internal IP, or a VPN.
In the VPN case, what we actually want is to display an indicator
that a VPN is active, instead of the VPN IP itself. We parse the
IP here anyway, because we want to save some specific code there.
While zsh accepts the following code:
```
local paths=(${(s:/:)${1//"~\/"/}})
```
Travis fails unless it is
```
local paths=$1
paths=(${(s:/:)${paths//"~\/"/}})
```
Added `function truncatePath()` to utilities.zsh to take care of
truncation. This is pure zsh code, without calls to `sed`. Parameters
are:
* $1 Path: string - the directory path to be truncated
* $2 Length: integer - length to truncate to
* $3 Delimiter: string - the delimiter to use
* $4 From: string - "right" | "middle". If omited, assumes right.
Cleaned up code to use the new function instead.
Truncating the path from the right now takes in account the delimiter
length, so that directories with names shorter than truncated name +
delimiter are displayed properly.
For example, if SHORTEN_DIR_LENGTH is 4 and the delimiter is "..",
"../tests/.." and "../custom/.." are not incorrectly "truncated" to
"../test../.." and "../cust../..", both of which are longer or the same
length as the original.