Repository: react-materialize/react-materialize (js)

Issue:
Select - name attribute ignored
### Description
When using the Select component with a name attribute, the attribute is ignored. This makes it impossible to know which select input value has changed as I have a handler for all inputs which relies on the name attribute. 

### Steps to Reproduce


```
<Select name="category" s={12} l={4} onChange={this.handleInputChange}>
          <option value='0' disabled selected>Category</option>
          <option value='Cat 1'>Category 1</option>
          <option value='Cat 2'>Category 2</option>
        </Select>

....

 handleInputChange(event) {
    const target = event.target;
    let value = target.value;
    const name = target.name;
    console.log(`Name: ${name}, Value: ${value}`);
    ....
  }
```


**Expected behavior:**
Able to get the target name.

**Actual behavior:**
target name is empty

### Versions

**react-materialize:** 3.2.0
**materialize-css:** 1.0.0
**react:** 16.8.6

Many Thanks.


Pull request:
Select other attributes
# Select was not passing other props to `select` node.

Also we had some warnings in Storybook due to multiple select value prop.

Fixes #853

Patch:
diff --git a/src/Select.js b/src/Select.js
index b7610ee..8e852f7 100644
--- a/src/Select.js
+++ b/src/Select.js
@@ -67,7 +67,8 @@ class Select extends Component {
       error,
       validate,
       children,
-      multiple
+      multiple,
+      ...other
     } = this.props;
 
     const sizes = { s, m, l, xl };
@@ -87,7 +88,8 @@ class Select extends Component {
       id: this.id,
       value: this.state.value,
       disabled,
-      multiple
+      multiple,
+      ...other
     };
 
     const renderLabel = () =>
@@ -180,7 +182,7 @@ Select.propTypes = {
   /*
    * Input initial value
    */
-  value: PropTypes.string,
+  value: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),
   /*
    * Add validate class to input
    */
diff --git a/stories/Select.stories.js b/stories/Select.stories.js
index cd20f8f..f7af59e 100644
--- a/stories/Select.stories.js
+++ b/stories/Select.stories.js
@@ -35,7 +35,7 @@ stories.add('with Icon', () => (
 ));
 
 stories.add('Multiple', () => (
-  <Select multiple value="">
+  <Select multiple value={['']}>
     <option value="" disabled>
       Choose your option
     </option>


Test patch:
diff --git a/test/Select.spec.js b/test/Select.spec.js
index ec9f255..eb8c5a3 100644
--- a/test/Select.spec.js
+++ b/test/Select.spec.js
@@ -71,6 +71,11 @@ describe('<Select />', () => {
     expect(wrapper.find('select.multiple')).toHaveLength(1);
   });
 
+  test('handles other attributes', () => {
+    wrapper = shallow(<Select name="foo" />);
+    expect(wrapper.find('select').prop('name')).toBe('foo');
+  });
+
   describe('initialises', () => {
     const selectInitMock = jest.fn();
     const selectInstanceDestroyMock = jest.fn();
diff --git a/test/__snapshots__/Select.spec.js.snap b/test/__snapshots__/Select.spec.js.snap
index ae01c45..e838cc2 100644
--- a/test/__snapshots__/Select.spec.js.snap
+++ b/test/__snapshots__/Select.spec.js.snap
@@ -13,6 +13,26 @@ exports[`<Select /> with icon 1`] = `
     className=""
     id="mockId"
     onChange={[Function]}
+    options={
+      Object {
+        "classes": "",
+        "dropdownOptions": Object {
+          "alignment": "left",
+          "autoTrigger": true,
+          "closeOnClick": true,
+          "constrainWidth": true,
+          "container": null,
+          "coverTrigger": true,
+          "hover": false,
+          "inDuration": 150,
+          "onCloseEnd": null,
+          "onCloseStart": null,
+          "onOpenEnd": null,
+          "onOpenStart": null,
+          "outDuration": 250,
+        },
+      }
+    }
     type="select"
   />
 </div>