Optional field list restrictions for queries

Sobjects with very large number of fields currently break when trying to load them from SalesForce as the previously generated query for all fields is too long. This pull request:

* add optional field_list parameter to `all`, `query`, `first`, and `last` query type finders.
* add optional field_list parameter to dynamic ActiveRecord style finders
* including field_list string selects only those attributes from SalesForce all other attributes will be blank

NOTE: `find` queries for upstream Sobjects with too many calculated/derived fields will currently fail; however you would be able to do something like:

```ruby
SalesForce::Account.query("Id = 'account_id'", "Id,FirstName,LastName").first
SalesForce::Account.find_by_Id("account_id", "Id,FirstName,LastName")
SalesForce::Account.find_by_Id("account_id", { :field_list => "Id,FirstName,LastName" })
```