deque: initial commit for lab1
deque: add addFirst() method
deque: add addLast() method

To verify that deque is not empty after addFirst or addLast execution,
unit tests are implemented.
deque: add getFirst() and getLast()
deque: initialize both first and last in add methods
deque: throw NoSuchElement exception from get methods if deque is empty
deque: add remove methods

Verify that remove methods return NoSuchElement exception if deque is empty.
Verify that remove methods elements recently added.
deque: decrement size if item is removed
deque: verify that it is possible to add and remove arrays of items
deque: add clear method

Remove private size variable as not used.
deque: small corrections to refactor the code
deque: use factory method to create a deque
deque: replace for-i-loop by for-each which using iterator

Make Deque class final to satisfy code style
deque: let get and remove methods return null if deque is empty
deque: refactor by adding setUp and tearDown methods in unit tests

createDeque() is renamed to create() to prevent noise.
deque: replace Arrays of Integers by ArrayLists
deque: refactor test methods by reducing lines of code number
Merge pull request #55 from VVillwin/lab1-tdd-deque

Вильчинский - Лабораторная работа #1