tty: fix tty

this commit contain below changes:
 - tiny_write return count of char instead of -EINVAL
 - call put_tty_driver in tiny_exit to free resources allocated by tty_register_driver
 - move the termios object into the tty
		root cause commits in linux-stable:
		commit adc8d746caa67fff4b53ba3e5163a6cbacc3b523
		Author: Alan Cox <alan@linux.intel.com>
		Date:   Sat Jul 14 15:31:47 2012 +0100

			tty: move the termios object into the tty

			This will let us sort out a whole pile of tty related races. The
			alternative would be to keep points and refcount the termios objects.
			However
			1. They are tiny anyway
			2. Many devices don't use the stored copies
			3. We can remove a pty special case
 - move tty buffers to tty_port
		root cause commits in linux-stable:
		commit ecbbfd44a08fa80e0d664814efd4c187721b85f6
		Author: Jiri Slaby <jslaby@suse.cz>
		Date:   Thu Oct 18 22:26:47 2012 +0200

			TTY: move tty buffers to tty_port

			So this is it. The big step why we did all the work over the past
			kernel releases. Now everything is prepared, so nothing protects us
			from doing that big step.

					   |  |            \  \ nnnn/^l      |  |
					   |  |             \  /     /       |  |
					   |  '-,.__   =>    \/   ,-`    =>  |  '-,.__
					   | O __.´´)        (  .`           | O __.´´)
						~~~   ~~          ``              ~~~   ~~
			The buffers are now in the tty_port structure and we can start
			teaching the buffer helpers (insert char/string, flip etc.) to use
			tty_port instead of tty_struct all around.
 - using tty_port_operations activate/shutdown to do hardware related
   one time setup/teardown during tiny_open/tiny_close