Fix C exception handling & null-termination error.

rb_raise() uses longjmp() to exit the function scope. The goto done
method of cleanup does not executed with the longjmp. Fix by delaying
all raises until the end of the function to preserve a uniform error
handling pattern.

Also, ruby strings are not guaranteed to be null terminated. Strings
that are passed to APIs without explicit length arguments are copied and
cleaned up.

Lastly, enforce type checks everywhere before grabbing an RSTRING_PTR.
Allow specifying URI in signing reference.
Address @khandelwal's comments.

  - Switched from strndup to StringValueCStr.
  - Added comments about expected arguments for vararg functions.
  - Cleaned up some comments.
  - Updated sign_with_key to correctly specify c14n transform.
  - Updated unittest golden files to reflect c14n transform being
    specified in the signature transforms.
Mark system certificate test pending.

This test is impossible to execute without admin intervention.
Marking it pending to require manual intervention.
Add ignores for vim swap files.
Tighten up XSLT and external reference security.

  * Only allow empty or local document URI in signature reference.
    This prevents libxml2 from reading random bits of the filesystem
    based on a URI.
  * Disable all XSLT features that use filesystem or network access.
  * Redirect xmlsec1 logging away from stdout. Embedd errors into
    the exception message.
  * Add tests that assert the removal of filesystem and network access.
  * Rename key manager facetory methods to be more descriptive.
  * Add comments.

Still missing tests for possible XSLT abuse.
Set default to AES256, RSA-OAEP. Include travis CI.

Really, the crypto parameters should be required in the API.
Clients should necessarily understand what algorithms they are using.
Revert to C90 featureset for travis.
Clean up symbol visiblity for dynamic lib hygiene.

Ruby extensions are loaded as dynamic libraries. Since all extensions
share the same dynamic symbol space, it's much safer to whitelist symbol
visibilty. This avoids the possibility of accidentally stomping on each
others definitions and causing all sorts of hilarity.
Remove all deprecated rspec syntax.
Merge pull request #1 from omb-awong/support_reference_uri

Support reference uri & fix gobs of C code