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.