Rename pxe_template_dir setting to boot_loader_conf_template_dir

PXE refers to DHCP+TFTP. This template directory only contains
boot loader configuration templates, so setting name should reflect
that more clearly.
Rename source/dest boot loader configuration templates directories

PXE refers to DHCP+TFTP. This template directory only contains
boot loader configuration templates, so directory name should
reflect that more clearly.
Rename file serializer/deserializer name

Old name was serializer_catalog.py. Catalog is not an intuitive name,
serializer_file.py is more intuitive.
Merge pull request #1215 from alanoe/alanoe/rename_boot_loader_conf_templates_dir

alanoe/rename boot loader conf templates dir
Merge pull request #1217 from alanoe/alanoe/rename_catalog_serializer

Rename file serializer/deserializer name
Replace string with str in method documentation

Make documentation consistent and always use var type name
in method documentation. String variable in Python is named
'str'.
Remove redundant code in add() in collection.py
Fix check_access() call in remove_item()
Handle errors consistently in collection item copy/remove/rename/add

Errors were handled via exceptions and return code before.
Handle all errors via exceptions now.
Handle errors with exceptions instead of return code
Remove unused clear() method from collection base class
Remove unused deserialize_* methods

Only deserialization methods kept were deserialize(), used to
load all collections from disk, and deserialize_raw(), used
internally in classes which implement serializer interface.
Rename obj param to collection in serializer functions

Obj is a confusing term because at first sight it seems
obj is a collection item. However, obj is a collection
in this context.

Also, improve serializer classes documentation.
Remove code that checks if serialize_delete() and serialize_item() exist

All serializer classes currenly implement these methods.
If a specific serializer in the future is unable to save/delete
one item, then the specific serializer should handle the
workaround, not the base serializer class.
Remove unused main code from serializer base class
Do not serialize settings collection in serializer subclasses

Only file / CouchDB serializers were checking if collection type
was settings before, added the check to mongodb serializer
subclass.
Rename hash to dict

Part of the code used 'hash', part of the code used 'dict' to
reference Python dictionaries. This patch standardizes those
references.
Remove unused inplace parameter
Remove methods which create items from Config class

To keep code simpler, item creation should always be done
using the same method. Currently, there are 2 ways to create
an item: creating it directly or using Config class. The
purpose of this patch is to eliminate one of those and make
item creation more consistent.

There is no gain in keeping item creation in config class,
as it only creates the item, it does not do anything
additional such as adding the item to its respective collection.
Rename datastruct to correct data structure name

data structure is a generic name and could mean an object,
a dict, a list, etc. It is similar to name a variable 'var'.
Rename datastruct and make code easier to understand.

With same motivation, rename some obj instances to item.