Rewrote Module Loading

Changed module access.  Now accessible direction from
Connection instance instead of modules attribute.
Added lazy instantiation.  List of modules is retrieved
but modules are queried on first use.  Significantly
reduces connection and library load time.
Better Field Support

Added optional field paramters to support retrieving
multiple fields in a single request.  Reduces HTTP Overhead.
Additional Error Handling

Added support for two additional error returns from SugarCRM.
Rewrite of Search Operations

Re-implemenation of the querying approach to take into account
several values that were available in the REST replies.  Reduced
overhead, saved requests, and reduced redundant requests.

Additionally, added support for startswith queries, cleaned up
query creation, and generally made things feel more pythonic.
Better Field Access Support

Added support for retrieval of multiple fields at a time
for a SugarEntry.  When passed a tuple as a key the the return
value is a tuple, with the entries for each key.  This
facilitates reduced HTTP overhead as multiple fields can be
pulled in a single request.
Add Field Support for Queries

When creating Queries you can now provide a list of result
fields that should be retrieved.  These should be set
when query() is called, and are carried through during
filters and excludes.
Fix Table Retrieval for Relate Call

The call to relate entries from separate modules
may as well make use of the table name value
we retrieved when we set up the module.
Better Missing-Key Indication

Provide an exception that includes the errant key
so that users know what not to request in the future.
Unescape HTML Encoded Values

When retrieving fields for entries values need to be
properly unescaped after transmission across the wire.
Add .gitignore.

Need a way to prevent .pyc files, etc from commiting.
Multi-Relate Support

Allows the creation of multiple relationships in a single
call to relate - maintains support for a single entry as well.
Multi-Relate Support.

The SugarEntry modifications for multi-relate support
in a single call.
Special Case Product Bundle Relationships

When relating Products to Product Bundles it is
necessary to provide an index (sequence) for the
Products.  Without this index only the most
recently related Product is visible on a Quote.
Reasonable Defaults

If attempting to retrieve fields from a non-existent
Sugar Entry the return value in entry_list is falsey.
All fields in SugarEntries default to blank strings,
so when this empty response is received all fields
that were requested can be set blank.
Module Search Method

Adding support for searching within modules rather than
having to provide specific values or query types.
Set Relationships Product Indexes for Bundles

To address a bug in Sugar 6.5 and to make Products show up
correctly in Product Bundles.
Minor Formatting / Add __name__ to Dynamic Functions
Add __hash__ for use in Sets.

Uses a class-wide dictionary to store individual
distinct integer values for each SugarEntry so they
can be added to sets and used conveniently.
Better checking for incomplete JSON results.

If there is no entry_list then you can't retrieve and
iterate over the first value in the entry_list.
Implemenet module_search REST API Method.

Adds case insensitive searching by module.  Includes some
cleanup and a single instance HTML Parser.