Pharborist functions

This PR moves all function-related stuff, including the base traits for arguments and parameters, into the Pharborist\Functions sub-namespace. There's a single commit for each moved class, and I ran the tests before each commit to ensure they all passed. So this should be pretty much rock-solid.

Oh, and thank God for PhpStorm.