Issue title: Label only accepting a string. 
 Issue body: I would like to pass in a tooltip as a node for my label but looking at the source code the label propType is set to a string. Would we be able to change it to accept and object as well? 

```
<Input
  name="cvv"
  label={<OverlayTrigger placement='top' overlay={<Tooltip><strong>Holy guacamole!</strong></Tooltip>}><p>Check this info.</p></OverlayTrigger>}
  type="text"
  value={this.props.cvv}
  />
```
 Comments: 
 Comment 0: I did think It might be as easy as changing the label propType to `label: React.PropTypes.node` but this is producing an error. 

`Uncaught TypeError: Converting circular structure to JSON`
 Comment 1: I have tested this by just using the BS Input which works. Think something else is going here.
 Comment 2: So in the `component.js` mixin there is a `getId` function which is trying to do a hash of stringifyed props. 
`this.hashString(JSON.stringify(this.props)`
The props has a circular structure so cannot be stringifyed when we pass in a node. By just supplying an ID props the function wont run this code and I can use a node. Wondering if we need to make some changes to not call stringify on the props. 
 Comment 3: Relaxed this constraint in 0433c8d42116df263e7709f8b420c1f8f9115293. Thanks for the PR!

Now that labels can contain any React "renderable content", the onus is on the developer to ensure they pass in valid content. For example, block content (like `<p>`) isn't allowed in a `<label>`. 😉

For future reference (when I eventually write some docs): [the label spec](https://html.spec.whatwg.org/multipage/forms.html#the-label-element).
 Comment 4: Yeah just threw the <p> in for testing as it needed to be in a single element. Then realised the error of my way and changed it :stuck_out_tongue:
 Comment 5: Just updated...
{'source': 'GithubIssues', 'repo_name_with_owner': 'twisty/formsy-react-components', 'issue_id': 113627789, 'repo_stars': 326.0}