Add config option to throw error if you search by an unknown condition and determine if a condition is searchable

Currently, ransack filters out search conditions that are not existent on the model you're using to search.

````
1.9.3p385 :001 > x = Person.ransack(:name_first_eq => "Bob", :foo_eq => "Bar")
 => Ransack::Search<class: Person, base: Grouping <conditions: [Condition <attributes: ["name_first"], predicate: eq, values: ["Bob"]>], combinator: and>> 
1.9.3p385 :002 > x.conditions
 => [Condition <attributes: ["name_first"], predicate: eq, values: ["Bob"]>] 
````

This pull request adds a configuration option (ignore_unknown_conditions) to have ransack throw and error if it encounters a search condition it doesn't handle. By default, ignore_unknown_conditions is set to true (matches current functionality). Setting it to false will trigger this new feature.

````
1.9.3p385 :001 > x = Person.ransack(:name_first_eq => "Bob", :foo_eq => "Bar")
Ransack::UnknownConditionError: Unknown search condition: foo_eq
````

The two tests I included tests this feature against the default configuration (does not throw an error) and with ignore_unknown_conditions = false (does throw an error).

The rational for this is for people hailing from the searchlogic days. I'd rather have ransack tell me I'm searching on bs conditions than to scratch my head wondering why I'm getting back so many items in my result set because I fat fingered a search term somewhere.

Additionally, I added (along with a test) a ransackable_search_term? method to determine if a search term is ransackable.

````
1.9.3p385 :001 > Person.ransackable_search_term?("name_eq")
 => true

1.9.3p385 :001 > Person.ransackable_search_term?("i_do_not_exist_eq")
 => false
````