Improve parsing of JSON and XML parsers by passing the encoding directly to the parsers.

This fixes an issue with JSON parser on Python3, but also utilizes the corresponding parser's encoding features.
Account for missing credentials in boto config

Fixes #38.  If a boto config file has a Credentials section
but no actual credentials we move on to the next provider
instead of propogating an exception.

In addition to adding a test for this fix, I've also refactored
the unit tests for credentials, including:

* prefer unittest.Testcase.assert* assertion methods.  These give
  better error messages when an assertion fails.
* Use mocks to patch out os.environ.  The tests were just deleting
  all the pertinent environment vars in tearDown.  Now, for each test
  we patch out os.environ, and then restore the original os.environ
  dict when the test is finished.  This prevents global state from
  being modified from test to test.
* Removed code duplication by pushing common code into a base class
  setUp/tearDown as well as a path() helper function.
Stay consistent with absolute imports
Use methods= as kwarg

No functional change, just for readability.
Support default value for EnvironmentVariables

If a default_value is specified in the config
tuple for EnvironmentVariables for 'config_file', it wasn't
being honored by the Session object.  This update will return
a default value if a non None default is provided and if the
calculuated value is None.
Add default value for aws config file

To use a config file to store credentials, you first
had to create a file, and then set the AWS_CONFIG_FILE env var
to this file's locations.  Now a default location of ~/.aws/config
is checked if AWS_CONFIG_FILE is not set.
Add additional docs about the tuple params
Add test to ensure env var beats config defaults
Move configs used in unit tests to cfg/ dir

Makes it easier to track the various configs used in tests.
Change profile section names in aws config file

Profile names are now specified as::

    [profile "name"]
    aws_... = foo

The motivation for this change is to "make room" for other
configuration options in the config file.  Currently, any section
name in the config file is considered a potential profile name.

Another alternative is to just whitelist a set of configuration
options that aren't profiles, but then that restricts what names
you can use for profiles.
Adding filter specification to EC2 model.
The endpoint param conflicts not only with the --endpoint CLI arg but also with the endpoint kwarg of the call method.  See https://github.com/aws/aws-cli/issues/100.
Update test based on last commit.
Fix a bug in handling of rest-json parameters.  Fixes #41.
Allow unsigned requests if signature_version is unset
Add tests