app/ccnFileProxy: In writeFile, fix timeout bug by changing to spawn a separate thread to write the output

writeFile was trying to send the data on the same thread for servicing
incoming interests and was getting blocked.  When it receives the
interest, ccnfileproxy gets the file and writes out all the segments
which are ultimately stored in the CCNFlowControl object.  When it tries
close the output, this eventually calls CCNFlowControl.waitForPutDrain
which expects all its output content to have been requested and
serviced.  But because this wait loop is on the same interest service
thread, no interests are serviced and the attempt to close times out
after 10 seconds.  This returns control to the interest service thread
and the content is sent.  The solution is to spawn a separate thread to
write the output segments and not block the incoming interest service
thread.

Refs #5
tools: Correcting mistyped command-line option in ccnd-publish-local-info

Refs #6
Merge branch 'issues/ndn-0005-ccnFileProxy'

* issues/ndn-0005-ccnFileProxy:
  app/ccnFileProxy: In writeFile, fix timeout bug by changing to spawn a separate thread to write the output
tools: Extending autoconfiguration script

Now it is possible to run it in a daemon mode, which checks every 10 seconds
existence of an autoconf route.  If not, it tries to configure it.

Refs #6
tools: Requiring bash for ccnd-autoconfig

Refs #6
tools: Replace ccncat with ccnpeek (ccncat doesn't have an option to timeout)

Refs #6
tools: Adding python script that "DNSifies" NDN names

Script takes an input a URI formatted NDN name and output (if possible)
a converted DNS name:

  - order of name components gets reversed: /x/y/z.n/m -> m/z.n/y/x
  - all "/" replaced with ".": m/z.n/y/x -> m.z.n.y.x
  - the resulting name is checked for validity, and if necessary (and
    possible), converted to international domain name

Change-Id: I745be9ca89bd86f773a56c2da147364d67fda6ac

Refs #1
tools: Replacing usage of "ccndc srv" with a simple dig-based lookup

The main reason for replacement is that it is necessary to remember
auto-configured route and it is impossible to do so with just "ccndc srv"
(unless it is modified appropriately).

The consequence of not remembering is a potential infinite loop within
ccnd-autoconfig script.

Refs #6
C-API: Implementing load of public key certification, meta, and public key name from .pubcert file, which has fixed name "<keystore_file>.pubcert"

Change-Id: Ia641355199018960dcec05aa453a531c20c32c98

Refs #1
Merge branch 'issues/ndn-0006-ccnd-autoconfig'

* issues/ndn-0006-ccnd-autoconfig:
  tools: Replacing usage of "ccndc srv" with a simple dig-based lookup
  tools: Replace ccncat with ccnpeek (ccncat doesn't have an option to timeout)
  tools: Requiring bash for ccnd-autoconfig
  tools: Extending autoconfiguration script
  tools: Correcting mistyped command-line option in ccnd-publish-local-info

Refs #6
C-API: Implementing request for public key name

Also in this commit:
- command line tool (ndn-pubkey-name) to retrieve stored public key name

Change-Id: I28b903f41d6174dfc07edbeb23dadac8e02b1375

Refs #1
C-API: New helper script ndn-install-pubcert to check and install .pubcert file into the right location

Change-Id: Idcf066f292ebf898d59fb70d178bf60aa142c014

Refs #1
tools: Two more helper scripts: to extract public key and to automate application key signing

ndn-sign-key is a simplified version of the original script from
http://github.com/named-data/ndn-testbed-key-suite repository, which
combines usage of .pubcert and published keys to infer most of the
signing parameters.

Change-Id: I86607f1d581d61eaf773296af46ed8243f84d7bb

Refs #1
tools+doc: Updating ccnd-autoconfig to make use of public key name at stage 3

Also in this commit:
- new man page for ccnd-autoconfig with detailed explanation of stages

Change-Id: I3fc0330911d8f893080ae418bc061657b49915bf

Refs #1
build: Specifying -std=c99, as new code uses some of the c99 syntax

Refs #1
C-API: Fixing comparison of .pubcert and public key in keystore

On some platforms, base64 produces multi-line output, which was not
originally expected

Refs #1
tools: Correction of ndn-sign-key

The script was assuming that base64 does not return multi-line output.

Refs #1
doc+build: Disabling compilation of technical docs, enabling installation of manpages

Refs #2
build: Another fix for the same issue: using -std=gnu99 flag

Using -std=c99 breaks compilation of several core files

Refs #1
build: Updating csrc/cmd/dir.mk and csrc/lib/dir.mk to fix parallel compilation and remove unnecessary rules

Refs #2