Be able to set the input parameter type for custom node

This pull request is to fix defect [MAGN 3740 Should be able to set the input parameter type for custom node](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-3740).

Following summarizes what have done in this pull request:
  1. For ``Input`` node, we replace its text control ``DynamoTextBox`` with ``ParameterEditorControl`` which support auto-completion (thanks @aparajit-pratap):
![1](https://cloud.githubusercontent.com/assets/2600379/5157995/3257d138-7368-11e4-991d-4e9c49b0f2ce.png)
``Input`` node accepts four kinds of input formats:
* ``parameter_name``
* ``parameter_name : type``
* ``parameter_name = default_value``
* ``parameter_name : type = default_value``
  2. It provides limited error handling
![8](https://cloud.githubusercontent.com/assets/2600379/5158000/8f9af262-7368-11e4-82bc-632071891c62.png)
"Limited error handling" means we just check the syntax but not semantics. For example, it won't give warning for input ``x : bool = 42``. 
  3. Support default value
![2](https://cloud.githubusercontent.com/assets/2600379/5158002/a4467948-7368-11e4-9005-0fc2de92354a.png)
![3](https://cloud.githubusercontent.com/assets/2600379/5158003/a6c6b750-7368-11e4-9689-6e7d408519df.png)
Four types are supported
* ``int``
* ``double``
* ``boolean``
* ``string``
  4. Support lacing
![4](https://cloud.githubusercontent.com/assets/2600379/5158007/d065f404-7368-11e4-88d2-ade68142a899.png)
  5. Infer input type automatically from ``DSFunction`` node and from ``Function`` node:
![5](https://cloud.githubusercontent.com/assets/2600379/5158009/e4838334-7368-11e4-92b3-6d50753eedf8.png)
![6](https://cloud.githubusercontent.com/assets/2600379/5158011/e72df092-7368-11e4-8536-e2b868f70b3f.png)
![7](https://cloud.githubusercontent.com/assets/2600379/5158013/e98d43ba-7368-11e4-8a48-aa7f6c46a261.png)

Some limitations and issues:
  1. For old custom nodes, their lacing strategy is always ``Disabled``. Shall we enable lacing for them? 
  2. Auto-completion control for ``Input`` node has some bugs, for example, when typing, no item is selected until pressing up/down arrow key. I'm trying to fix it...
  3. If custom node doesn't have any input, then lacing strategy should be disabled. 
  4. As ``Input`` node now has format requirement, it may break old file. For example, a test case tries to verify the nick name of a custom node input port is ``y = f(x)`` (this string is from ``Input``'s ``InputSymbol``). But now we may give a warning. Do we need a migration strategy?

Reviewers
- [ ] @ikeough 
- [ ] @Benglin
- [ ] @lukechurch  

@riteshchandawar , @monikaprabhu , you may be interested in what have been done for custom node. 

Thanks. 

Please specify this with an explicit type, it's not obvious from the RHS what is coming out of this