ItemLoader needs a bit of redesign

There is a bug in the current ItemLoader.  If you instantiate an ItemLoader with an item like `{'foo': 1}` and then call `add_value('foo', 2)` the return of `load_item()` will be something like: `{'foo': 2}` and we would expect something like: `{'foo': [1, 2]}`.  In order to address this we would add a new constructor argument called *values* which will allow loading data into the loader while preserving backwards compatibility with the *item* argument.

The basic issue is that there are two buckets for Item data in an ItemLoader, namely `ItemLoader.item` and `ItemLoader._values`; but, there is no added benefit to having such a design except for undocumented behavioral peculiarities such as Field collisions  and empty return values from `get_output_value()` as described below.

Having two buckets for item data is a good idea to allow persistent data among multiple instances of *ItemLoader* but all Field data methods need to look at both buckets, right now only `__init__()` and `load_item()` care about `item`.  Also, more methods can be added to this class to provide richer functionality for the separation of data between the two buckets; for example, `get_output_value()` could pull from `ItemLoader._values` as it does now and a new method `get_loaded_values()` could also pull from `ItemLoader.item`.

Also, since `ItemLoader.item` actually gets loaded during `load_item()`, we could also optionally clear out `ItemLoader._values` during this time.