split into seperate files

it would be a pain for everyone if these were seperate components but its rare to use more than one function at a time so this works well
optimize join
optimise normalize
optimise {base,dir}name
Release 1.1.0