Refactor/Extract Common Credential Module

Renamed ``Credential`` to ``SiteCredential``.
Created a new super class  ``Credential`` to hold the testing method(s), the constants and common modules. 
This allowed both ``SiteCredential``, and ``SharedCredential`` to have access to the testing method to test newly created credentials. 

Reference Issue: https://github.com/rapid7/nexpose-client/issues/96

@mdaines-r7 @asalazar-r7 @gschneider-r7 

Main changes made are for the signature ``_to_param(target, engine_id, port)`` and setting the ``@port`` inside the ``test`` method. 
Everything else should be exactly the same
If the names are different, we can merge them in a couple ways. We could alias in the attributes, so that existing code isn't broken by changing "name" -> "username". Or, we could have an override of the `#to_param` method to put the fields in the right place.