De-couple attachment class from APP

Reduced coupling between the attachment class and Laravel's application
container by injecting dependencies directly into the attachment class.
Working towards an attachment class that doesn't depend on
anything specific to Laravel.
Implement informative file upload errors.

Implemented informative file upload errors by redeclaring the
getErrorMessage function as public inside
Codesleeve\Stapler\UploadedFile class.  This alleviates a problem that
was created when newer versions of the symfony UploadedFile object changed
the visibilty of the getErrorMessage() function from public to private.
Create IOWrapper class for handling input types.

Created an IOWrapper class for handling multiple input types (Symfony
UploadedFile object, $_FILES array, or string remote file location) for
a file.  This class also allows for a complete decouping between
attachment objects and the App container object.