CAY-1942 Refactoring of NamedObjectFactory and NamingStrategy

Squashed commit of the following:

commit d3dcbe01f8b30d325936133e32124d4280623735
Author: alexkolonitsky <Alex.Kolonitsky@gmail.com>
Date:   Thu Aug 14 15:55:09 2014 +0300

    1) Make Smart and Base naming strategies independent in order to make
    behavior of Smart strategy consistent in all cases
    2) Rename NamingStrategy to NameGenerator
    3) Split NamedObjectFactory into
    3.1) NameChecker which responsible for checking is name available in
    naming context i.e. EntityAttribute name within Entity
    3.2) UniqueNameGenerator which in charge of returning unique name
    within passed naming context
    4) refactor copy/past action in order to use introduced mechanism for
    name generation
    5) move all classes responsible for name generation and checking into
    "naming" package

commit 88b1e95d137d6bd637d03ac248a4bb5d4b322dad
Author: alexkolonitsky <Alex.Kolonitsky@gmail.com>
Date:   Thu Aug 14 14:03:29 2014 +0300

    Name generation refactoring:
    1) Make Smart and Base naming strategies independent in order to make behavior of Smart strategy consistent in all cases
    2) Rename NamingStrategy to NameGenerator
    3) Split NamedObjectFactory into
    3.1) NameChecker which responsible for checking is name available in naming context i.e. EntityAttribute name within Entity
    3.2) UniqueNameGenerator which in charge of returning unique name within passed naming context
    4) refactor copy/past action in order to use introduced mechanism for name generation
    5) move all classes responsible for name generation and checking into "naming" package
CAY-1942 Refactoring of NamedObjectFactory and NamingStrategy

* proper @since versions
* expanded imports
* NameCheckers.SelectQuery -> Query
* missing/misformatted license headers
* public ivars -> making private
* javadocs (rewriting older javadocs that no longer make sense)