Add Juniper specific commit options

I wanted to add support for the Juniper commit options: `commit comment`, `commit synchronize`, and `commit at`. This replaces the Commit class in rpc.py for Junos devices with the new Commit class in third_party/juniper/rpc.py. 

This allows the programmer to do the following for Junos devices:
`Manager.commit(confirmed=True, timeout=600, comment="my super comment")`
`Manager.commit(at_time="12:10", synchronize=True)` 

Since `commit at` and `commit confirmed` are mutually exclusive, I had to import NCClientError to raise an error if they sent both parameters. Since it wasn't going to be xml returned from the Junos device, I figured it shouldn't be an RPCError. Perhaps there is a better way to do this, I wasn't sure. 

All the different combinations worked in my testing against Junos. I used this documentation to develop these: [Juniper Techpub page for commit xml format](http://www.juniper.net/techpubs/en_US/junos13.3/topics/reference/tag-summary/netconf-junos-xml-protocol-commit-configuration.html)