reworked test builder
Restructured tests
Updated test builder to be more generic
Updated to have the builder contain the generic tests
Fixed issues with:
* Returning altered value
* Handling errors through interceptors
* Handling errors in methods
Linting and fixes to unit tests
* renamed ProxyInfo to ProxyMetadata
* removed dependencies on ProxyInfo and __scarlet__ shadow
Moved `whencalled` method from constructor to wrap function
changed parameters to intercepter `whenCalled` to accept name, method, and arguments
Separated assertion builders