:sig
String nibble(String& haystack, String delim)

:params
haystack : string to be nibbled at
delim : delimiter
return value : string before first occurrence of 'delim'

:see
>string

:content
Returns the part of `haystack` before the first occurrence of `delim`.

As a side effect, the consumed portion is removed from `haystack`, including the delimiter itself.

If `delim` does not occur in `haystack`, the entire string is returned and `haystack` is set to an empty string.

Related:

- PHP: small parsing helpers built with `strpos()`, `substr()`, and `explode()`
- JavaScript / Node.js: manual parsing with `indexOf()`, `slice()`, and `split()`
