Add functions to handle string prefixes and suffixes

Introduces the following functions:
* `hasPrefix $prefix $s`
* `hasSuffix $suffix $s`
* `trimPrefix $prefix $s`
* `trimSuffix $suffix $s`

These call the corresponding `strings.{Has,Trim}*` functions with the arguments flipped to better facilitate function pipelining for template usage (e.g. `$val := split $input $sep | first | trimSuffix $suffix`).
It would certainly be easier to expose `strings.HasPrefix` et al. directly, but I really think that the considerations for argument order should be made in the context of Go templates, not Go itself. In the context of Go templates, taking into account their pipelining functionality, I think it makes more sense to have the argument orders reversed.

That being said, I'll reverse the order and close #34 if you're unconvinced that `split $input $sep | first | trimPrefix $prefix` isn't enough better than `trimPrefix (split $input $sep | first) $prefix`.