buffer: slow buffer copy compatibility fix

Fix issue where SlowBuffers couldn't be passed as targets for fast
buffer copy().

Also included small cleanups:
* Included documentation on how non uint parameters are handled
* Changed generic Errors to specifics
* Implemented quicker cc checks for undefined parameters
* Simplified Buffer checks
* Fixed buffer copy unit tests

There are many fixes here for `Buffer.copy()` that, imho, needed to be done, but too many for the v0.8 branch. I'll backport the basic changes and make another pull request for that.

Fix for GH-4633